gpt4 book ai didi

c++ - 随机字符串数组的选择排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:27 26 4
gpt4 key购买 nike

我正在尝试创建一个选择排序算法,该算法接受一个随机字符串数组并对其进行排序。我在网上和我的书中都看过,试图用它来模拟我的代码,这就是我想出的。我不确定哪里出错了,如有任何帮助,我们将不胜感激。

Here is how you load the array with the random strings:
string Sorter::randomString() {
string s = "";
for (int i = 0; i < MAX_CHARS; i++) {
char randomChar = char(rand() % 26 + 97);
s += randomChar;
}
return s;
}

void Sorter::load() {
for (int i = 0; i < MAX_STRINGS; i++)
workspace[i] = randomString();

Here is my selection sort:

void Sorter::selectionSort() {
for (int pass = 0; pass < MAX_STRINGS - 1; pass++) {
string smallest = workspace[pass];
for (int pos = pass + 1; pos < MAX_STRINGS - pass - 1; pos++) {
if (workspace[pos] > smallest) {
smallest = workspace[pos];
}
swap(workspace[pos], workspace[pass]);
}
}
}

我希望对数组工作区进行排序,但事实并非如此:(

最佳答案

您的逻辑存在一些缺陷,因为您没有正确设置列表中的最小元素。您应该为此使用最小索引。

void selectionSort() {
//Initialise minimum index
int min_id = 0;
//Loop through unsorted subarray
for (int pass = 0; pass < MAX_STRINGS - 1; pass++) {
//Find the minimum element in rest of array
min_id = pass;
for (int pos = pass + 1; pos < MAX_STRINGS; pos++) {
if (workspace[pos] < workspace[min_id]) {
min_id = pos;
}
}
//Swap the minimum element with current element in array
swap(workspace[min_id], workspace[pass]);
}
}

关于c++ - 随机字符串数组的选择排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583125/

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