そのため、配列を再配置する方法に関する 5 つまたは 6 つの投稿を読みました。アルファベット順、数字順、およびその章も読みました。最終的に思いついたのがこれ、
void selectionSort (string array[], int size)
{
int startScan, minIndex;
string minValue;
for(startScan = 0; startScan<(size-1); startScan++)
{
minIndex = startScan;
minValue = array[startScan];
string temp;
for(int index = startScan+1; index<size; index++)
if(array[index] <minValue)
{
minValue = array[index];
minIndex = index;
}
}
array[minIndex] = array[startScan];
array[startScan] = minValue;
system("pause");
}
明らかに、これは機能しません。実行すると壊れる必要があると叫びます。int または数値型のいずれかであれば、これでうまくいくと思います。ええと、char 型の ASCII 値として設定した場合でも、おそらく実行されるでしょう。しかし、実際の割り当ては文字列であり、私にはそれがわかりません。最初の文字を切り取って char に変換し、そのようにアルファベットに変換しようと考えましたが、一部の文字列には姓が同じで名前が異なるため、それも機能しません。
並べ替えで配列をアルファベット順に並べ替えるには、何を修正する必要がありますか?
更新コメントを読んで本を読み直した後、コードで変更したものを更新しました。コードを実行してもエラーは発生しなくなりましたが、それでもソートされません!