我的代碼:(我期望它按升序排序傳遞數組)。爲什麼排序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