所以我已经阅读了5到6篇关于如何重新排列数组的文章,有些按字母顺序排列了一些数字,我也读了这一章。这是我终于想出的,按字母顺序排列字符串数组(或者甚至是* ptr)
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值,它甚至可能会运行。但实际的任务是一个字符串,我只是无法弄清楚。我曾想过试图剪掉第一个字母并将其转换为字母,但其中一些字符串的姓氏与第一个字母不同,所以这也不起作用。
我需要解决什么问题才能让我的数组按字母排序?
UPDATE在阅读评论和重新回顾本书后,更新了代码中已更改的内容。运行代码时不再出现错误,但仍然无法排序!
如果用“hollers”表示它给你一个错误,请显示该错误。 – 2013-04-05 11:55:18
'std :: sort'有什么问题? – 2013-04-05 11:55:38
你需要做的是正确实现选择排序。你的代码甚至不是选择排序。比较你写的代码到一个真正的选择排序,例如这里http://en.wikipedia.org/wiki/Selection_sort – john 2013-04-05 11:59:05