gpt4 book ai didi

c++ - 排序算法不起作用

转载 作者:行者123 更新时间:2023-11-28 00:21:06 25 4
gpt4 key购买 nike

我的排序算法不断产生 10-15 个相同的数字,它假设对我的数组进行排序,该数组的大小为 2000,数字为 1-100。这是我一直在编码的家庭作业在 C++ 中使用了 4 个月,我整天都在研究它,它的截止日期是 12:00。请帮忙。就是想不通算法

//Function to sort the numbers
void sortNumbers(int nums[], int ARRAY_SIZE) {
int startScan, minIndex, minValue;
for (startScan = 0; startScan < (ARRAY_SIZE-1); startScan++) {
minIndex = startScan;
minValue = nums[startScan];

for(int index = startScan+1; index < ARRAY_SIZE; index++) {
if(nums[index]< minValue) {
minValue = nums[index];
minIndex = index;
}

nums[minIndex] = nums[startScan];
nums[startScan] = minValue;
}
}
}

最佳答案

您只需要在内循环之外进行交换。

获取这部分

nums[minIndex] = nums[startScan];
nums[startScan] = minValue;

跳出内循环。

您的代码应如下所示:

void sortNumbers(int nums[], int ARRAY_SIZE) {
int startScan, minIndex, minValue;
for (startScan = 0; startScan < (ARRAY_SIZE-1); startScan++) {
minIndex = startScan;
minValue = nums[startScan];

for(int index = startScan+1; index < ARRAY_SIZE; index++) {
if(nums[index]< minValue) {
minValue = nums[index];
minIndex = index;
}
}

nums[minIndex] = nums[startScan];
nums[startScan] = minValue;
}
}

下面是对选择排序的非常清楚的解释,包括图像和步骤:http://www.algolist.net/Algorithms/Sorting/Selection_sort

关于c++ - 排序算法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com