VB中的冒泡排序在最坏情况下的比较次数是n(n-1)⼀2 为什么?什么是最坏的情况?

2024-11-26 21:42:27
推荐回答(4个)
回答1:

本题目说法有误,冒泡法排序时,假定对N个数据排序,不管它们的顺序是怎样的,总是比较n(n-1)/2次,否则顺序就不会碰帆樱排好。

而冒泡法排序时,并不是每次比较都要交换数据的位置,只有在两个数的大小跟要排的大小顺序相矛盾时,才产生轿袭交换动作,所以,尽管排序时比较了n(n-1)/2次,一般并不会交换n(n-1)/2次,笑丛而是少于n(n-1)/2次,只有在最坏的情况下才会交换n(n-1)/2次。

这个最坏情况是指,假如要把一组顺序正好是从小到大排列数字,按照从大到小的顺序排序,这时每次比较都要交换,所以要交换n(n-1)/2次。

这是本人的理解。愿商榷。

回答2:

比如你枯指要从大到小排序,数据正好从小到大,这就是最坏!

一般程序为
for i=1 to n-1
for j=i+1 to n
比较
next
next
次数为:n-1、n-2、...3、2、1 ,加段败袭握兄一起 就是 n(n-1)/2 次

回答3:

与你要的序相反的序,比如,你要升序,他给你歼源降序,橡笑这就是最坏情况。因为需要颠倒数列,进行氏如态n(n-1)/2次交换……

回答4:

比较次数最多的情况就是最坏情况