gpt4 book ai didi

C++ 冒泡排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:42 26 4
gpt4 key购买 nike

嘿,我从名为冒泡排序的类(class)中学到了这个算法。它在另一个内部使用了两个“for”。但是当我尝试用“while”来做时它没有用,它们不是等价的吗?

void bubbleSort(int v[], int n) {   // void workingBubble(int v[], int n){
int fim = n - 1; // int i, fim;
int i = 0; // for(fim=n-1; fim>0; fim--){
int aux; // for(i=0; i<fim; i++){
while (fim > 0) { // if(v[i] > v[i+1]){
while (i < fim) { // int temp = v[i];
if (v[i] > v[i + 1]) { // v[i] = v[i+1];
aux = v[i]; // v[i+1] = temp;
v[i] = v[i + 1]; // }
v[i + 1] = aux; // }
} // }
i++; // }
} //
fim--; //
}}

我评论了一个工作在另一个旁边的,所以我可以比较,我认为它是相同的,但用 while 而不是 for

Array = {10, 2, 8, 11, 5, 3, 27, 1}

Array after bubble sort = {2, 8, 10, 5, 3, 11, 1, 27}

最佳答案

每次在内循环之前将i重置为0:

void bubbleSort(int v[], int n) {
int fim = n - 1;
int i;
int aux;
while (fim > 0) {
i = 0;
while (i < fim) {
if (v[i] > v[i + 1]) {
aux = v[i];
v[i] = v[i + 1];
v[i + 1] = aux;
}
i++;
}
fim--;
}
}

关于C++ 冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50672144/

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