【发布时间】:2014-05-08 14:56:42
【问题描述】:
这是我的代码
#include <stdio.h>
int main(void){
int unsorted[] = {1,3,4,5,2};
int i = 0;
int j = 0;
int temp = 0;
for(i = 1; i <= 5; i++){
temp = unsorted[i];
j = i - 1;
while(unsorted[j] > unsorted[i]){
unsorted[i] = unsorted[j];
unsorted[j] = temp;
}
}
for(i = 0; i < 5; i++){
printf("%i", unsorted[i]);
}
return 0;
}
输出是 13425。它进入 while 循环的次数足以将 2(最后一个元素)移动到它的位置,但由于某种原因它不是。
【问题讨论】:
-
for(i = 1; i <= 5; i++){ temp = unsorted[i];可能和你当前的问题无关,但是考虑一下i的值达到5时会发生什么。 -
我没有想到这一点,我添加了一个 if 条件,所以如果 i
标签: insertion