我的代码:(我期望它按升序排序传递数组)。为什么排序alogrithim将无限循环
void sort(int arr[], int n) {
int c=0;
for(int i = 0; i<n-1; ++i) {
if (arr[i]>arr[i+1]) {
c=arr[i];
arr[i]=arr[i+1];
arr[i]=c;
i=0;
}
}
}
实例阵列:int arr[4]={3,1,2,4};
sort(arr,4);
错误:无限循环???
对于小型输入设置,手动在纸上(或使用调试器)逐步执行代码。为什么不符合终止条件? – user2864740 2014-09-25 23:40:21
我一直这样做,令人尴尬的2个小时。我的意思是如果数组是3,4,1,2 ..过程应该是这样的:3,1,4,2 .... 1,3,4,2 ... 1,3,2,4。 .1,2,3,4 .. – 2014-09-25 23:42:38
“我”看到你在那里做了什么:) – 2014-09-25 23:42:40