私は約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