약 1 년 전에 데이터 구조 및 알고리즘에 대해이 삽입 정렬을 만들었습니다. 나는 Visual Studio 2008을 사용하여 2010을 사용하고 있습니다. 다른 것을 사용하고 싶었지만 코드를 실행할 때 가장 높은 숫자가 -898583932 또는 그와 비슷한 것으로 정렬되었습니다. 어떤 아이디어가 그 원인일까요?삽입 정렬 오류
for (current = 1; current <= last; current++){
hold = array[current];
당신은 그 지수에 더 조심해야한다 : 여기 내 코드 이상하게 큰 음수 아마이 함께 할 수있는 뭔가가
#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