对n个元素的序列进行冒泡排序时,最少的比较次数是

2024-11-30 10:25:13
推荐回答(3个)
回答1:

进行冒泡排序,理论上来说,最小的比较次数是 0次,可以是直接排好序的序列。
但是,程序并不会像人一样,一眼看出来,所以它的走一趟,如果在这一趟中没有发生任何交换,它知道这个序列是排好序的,也就是n-1次,不过这个要在代码中判断,如果不加入判断的话,它还是一直比较下去,直到结束。

回答2:

进行冒泡排序,理论上来说,最小的比较次数是 0次,可以是直接排好序的序列。
但是,程序并不会像人一样,一眼看出来,所以它的走一趟,如果在这一趟中没有发生任何交换,它知道这个序列是排好序的,也就是n-1次,不过这个要在代码中判断,如果不加入判断的话,它还是一直比较下去,直到结束。

是选d,比较次数最多时元素是逆序的,需要n-1趟排序
第一趟,比较n-1次,确定第n个据元素
第二趟,比较n-2次,确定第n-1个数据元素
第三趟,比较n-3次,确定第n-2个数据元素
......
第n-1趟,比较1次,确定第1、2个数据元素
总的比较次数=(n-1)+(n-2)+......+1=n(n-1)/2

回答3:

最少是一次,但最好内层是n次外层循环是n-1次