5
大约一年前,我为数据结构和算法创建了这种插入排序。我正在使用Visual Studio 2008,现在我正在使用2010年。我想在其他事情中使用排序,但是当我运行代码时,它会将最高数字排序为-898583932或与之相近的东西。任何想法可能会造成这种情况?这里是我的代码插入排序错误
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void insertionSort(int array[], int last){
int hold;
int walker;
int current;
for (current = 1; current <= last; current++){
hold = array[current];
for (walker = current - 1;
walker >= 0 && hold < array[walker]; walker--){
array[walker + 1] = array[walker];
}
array[walker + 1] = hold;
}
return;
}
int main(int argc, char *argv[])
{
int numbers[10];
int i;
srand(time(NULL));
for (i = 0; i < 10; i++){
numbers[i] = rand() % 100;
}
printf("Unsorted Numbers\n-------- -------\n");
for (i = 0; i < 10; i++){
printf("%d,", numbers[i]);
}
insertionSort(numbers, 10);
printf("\nSorted Numbers\n-------- -------\n");
for (i = 0; i < 10; i++){
printf("%d,", numbers[i]);
}
system("PAUSE");
return 0;
}
[SO],代码审查是对工作代码进行审查。 –
http://stackoverflow.com/questions/8045733/error-with-c-insertion-sort的副本 – Blastfurnace