gpt4 book ai didi

c - 哪个是冒泡排序?

转载 作者:太空狗 更新时间:2023-10-29 15:21:34 25 4
gpt4 key购买 nike

第一个:

for(int i=0;i<n-1;i++)
for(int j=n-1; j>i;j--)
if(a[j] < a[j-1])
swap(a[j], a[j-1]);

或第二个:

for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if(a[j] < a[i])
swap(a[j],a[i]);

或第三个版本:

int temp, i, j = 0;
boolean swaped = true;

while (swaped) {
swaped = false;
j++;
for(i = 0; i < arr.length - j; i++){
if(arr[i] > arr[i+1]){
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
swaped = true;
}
}
}

有人说第一个,有人说第二个。那么哪个是对的呢?有人说第二种是互换排序。很多书上说冒泡排序是第三版,但是很多人说第一版是冒泡排序。有什么意见吗?

最佳答案

第一个版本是冒泡排序,因为它比较每对相邻的项目。

第二个版本是选择排序,因为在每次外循环迭代后,a[i] 最终成为数组未排序右侧部分中的最小项。

关于c - 哪个是冒泡排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37163211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com