数据结构冒泡排序问题交换次数的计算
正确答案是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次。