C++ 按字母顺序排列字符串数组(甚至*ptr)
所以我读了五六篇关于如何重新排列数组的文章,有些按字母顺序排列,有些按数字排列,我也读了这一章。这就是我最后想到的C++ 按字母顺序排列字符串数组(甚至*ptr),c++,arrays,visual-c++,sorting,alphabetized,C++,Arrays,Visual C++,Sorting,Alphabetized,所以我读了五六篇关于如何重新排列数组的文章,有些按字母顺序排列,有些按数字排列,我也读了这一章。这就是我最后想到的 void selectionSort (string array[], int size) { int startScan, minIndex; string minValue; for(startScan = 0; startScan<(size-1); startScan++) { minIndex = startScan; minValue = arra
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");
}
void selectionSort(字符串数组[],整数大小)
{
int startScan,minIndex;
字符串最小值;
对于(startScan=0;startScan,因此出于某种原因,您选择不使用std,(您同时具有交换和排序功能)
我想提请你注意:
temp = array[count];
array[count]=array[(count+1)]; <-- when count is exactly size -1 you are going to commit overflow to your array
array[(count+1)] = temp;
temp=array[count];
array[count]=array[(count+1)];因此出于某种原因,您选择不使用std(您既有交换也有排序)
我想提请你注意:
temp = array[count];
array[count]=array[(count+1)]; <-- when count is exactly size -1 you are going to commit overflow to your array
array[(count+1)] = temp;
temp=array[count];
array[count]=array[(count+1)];执行array[count]时,存在一个明显的越界问题
+1]
(当count==size-1
时)。我看不出代码是如何
将对任何内容进行排序。您正在尝试什么算法
使用?当您使用array[count]时,有一个明显的越界问题
+1]
(当count==size-1
时)。我看不出代码是如何
将对任何内容进行排序。您正在尝试什么算法
使用?对于初学者,当您到达数组末尾时,将出现索引越界异常。由于您正在访问计数+1,For循环需要在大小为-1时停止。这看起来像是冒泡排序的开始,但尚未完全实现。对冒泡排序进行一些研究,您应该会很快得到答案。 首先,当到达数组末尾时,会出现索引越界异常。由于正在访问count+1,For循环需要在大小为-1时停止。这看起来像冒泡排序的开始,但尚未完全实现。对冒泡排序进行一些研究,您应该可以很快得到答案。“hollers”您的意思是它给您一个错误,请显示该错误。std::sort
有什么问题?您需要做的是正确实现选择排序。您的代码甚至不接近选择排序。请将您编写的代码与真正的选择排序进行比较,例如这里的@john或任何其他类型的排序。(他的代码是O(n)(如果它真的实现了一种排序,那将是开创性的。)詹姆斯-什么都没有,只是我不允许在作业中使用它。哦,我明白这个问题在你看来似乎很愚蠢,但我不需要成为一个粗鲁的朋友,我只是想学:(约翰-我确实读过,我理解这个概念(我想)对于排序,我显然不知道如何实现它。如果是“叫喊者”“您的意思是它会给您一个错误,请显示该错误。std::sort
有什么问题?您需要做的是正确地实现选择排序。您的代码甚至不接近于选择排序。请将您编写的代码与真正的选择排序进行比较,例如@john或任何其他类型的排序。(他的代码是O(n)(如果它真的实现了一种排序,那将是开创性的。)詹姆斯-什么都没有,只是我不允许在作业中使用它。哦,我明白这个问题在你看来似乎很愚蠢,但我不需要成为一个粗鲁的朋友,我只是想学:(约翰-我确实读过,我理解这个概念(我想)关于排序,我显然不知道如何实现它。谢谢,我总是提醒自己在作业使用数组时要小心数组边界,然后我对它感到失望,有时会忘记。:/我希望我可以使用STD交换,但作业是修改selectionSort代码以对字符串进行排序。谢谢,我总是提醒自己elf在分配使用数组时要小心数组边界,然后我会对它感到失望,有时会忘记。:/我希望我可以使用STD交换,但分配是修改selectionSort代码以对字符串进行排序。感谢您提醒我注意我尝试将冒泡排序与选择排序相结合的事实!承认dly我也遗漏了一些元素。谢谢你让我注意到我尝试将冒泡排序与选择排序相结合的事实!诚然,我也遗漏了一些元素。