数据结构冒泡排序问题交换次数的计算

正确答案是6次,冒泡排序算法如下:

for(I = 1;我& ltn;I++){//下标从1开始。

exchang = false

for(j = n;j & gt我;j -)

if(v[j - 1]>v[j]){

Swap(v[j - 1],v[j]);

exchang = true

}

如果(!exchang)返回;

}

因此,在第一遍中,j的值从9变为2,并在j等于1时结束。鼓泡过程如下:

J的值v[j-1] v[j]是否需要在v[j-1]之后交换v[i]。

9 v[8]:45 v[9]:80无v[8]:45 v[9]:80

8 v[7]:60 v[8]:45是v[7]:45 v[8]:60。

7 v[6]:70 v[7]:45是v[6]:45 v[7]:70。

6 v[5]:15 v[6]:45无v[5]:15 v[6]:45

5 v[4]:20 v[5]:15是v[4]:15 v[5]:20。

4 v[3]:95 v[4]:15是v[3]:15 v[4]:95。

3 v[2]:40 v[3]:15是v[2]:15 v[3]:40。

2 v[1]:50 v[2]:15是v[1]:15 v[2]:50。

从上面可以看出,冒泡的* * *换了6次。