データ構造コースのプログラムを書いていますが、選択ソートが 1 回しか実行されていないように見える問題に遭遇しました。部品番号ごとに配列を整理するために使用されています。
そのコードは次のとおりです。
void sorter::selection ()
{
int i, last, large;
int temp;
for (last = maxSize-1; last >= 1; last --) { //maxSize = 20
large = last;
for (i=0; i < last; i++)
if (group[i].partNumber > group[large].partNumber)
large = i;
}
temp = group[large].partNumber;
group[large].partNumber = group[last].partNumber;
group[last].partNumber = temp;
}
出力は次のとおりです。
Part Number
278
142
427
255
562
442
980
6
992
54
550
227
2
31
24
540
766
990
101
5
最大値を取り、それを配列の最後に配置し、すべてがその場所に配置されるまでそれを繰り返す必要があります...しかし、そうではありません。ここで私が間違っていることについて誰かが考えを持っていますか? ありがとう!