Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 按字母顺序排列字符串数组(甚至*ptr)_C++_Arrays_Visual C++_Sorting_Alphabetized - Fatal编程技术网

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我也遗漏了一些元素。谢谢你让我注意到我尝试将冒泡排序与选择排序相结合的事实!诚然,我也遗漏了一些元素。