【发布时间】:2021-07-06 16:35:03
【问题描述】:
我尝试过使用单个 for 循环的选择排序算法。
但输出没有那么快。
这段代码有什么错误吗?请帮忙。
#include <stdio.h>
int main() {
int arr[10]={6,12,0,18,11,99,55,45,34,2};
int n=10;
int i=0, j,swap;
for (j =1; j <n; j++) {
if(j==(n-1)){
i++;
j=i+1;
}
if (arr[i] > arr[j]){
swap = arr[j];
arr[j] = arr[i];
arr[i] = swap;}
}
for (int jj = 0; jj < n; jj++)
printf("%d\t", arr[jj]);
return 0;
}
output: 0 6 11 12 18 34 45 55 0 99
【问题讨论】:
-
提示:传统上,选择排序使用 2 个循环.....en.wikipedia.org/wiki/Selection_sort'
-
“使用单个 for 循环”——这就是它不起作用的原因。
-
@MitchWheat 但是单双 for 循环背后的逻辑是一样的吗??
标签: arrays c sorting for-loop selection-sort