【发布时间】:2017-04-14 01:55:25
【问题描述】:
我是 C++ 新手,我必须使用冒泡排序使字符串按升序显示。我有一个包含各种字符串的数据文件。我将这些值存储到一个数组中。当我尝试使用课本中的冒泡排序代码时,单词的排序方式是这样的。
我怎样才能正确地实现它?我想念的可能很简单。谢谢。
我不知道为什么会这样,但这是我用于冒泡排序的代码。
void sortListWords(string list[], int count) {
int temp;
for (int i = 0; i < count - 1; i++)
for (int j = 0; j < count - (i + 1); j++)
if (list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
int main(){
// call sorting function
// words are loaded from data file
sortListWords(wordListing, size);
// print array to screen
for(int i=0; i<size; i++)
cout << wordListing[i];
return 0;
}
【问题讨论】:
-
您希望它们按字典顺序排序吗?另请说明您在哪里定义
size。 -
我看不出这将如何编译,因为您正在使用
int临时变量来交换std::string值。 -
它实际上与整数的冒泡排序代码相同。你能编写代码对整数数组进行冒泡排序吗?如果是这样,唯一的区别就是使用的类型——其他一切都保持不变。
-
@JackRyan 是的。 size 是一个叫做 size 的常量,它等于 20。
-
@FredLarson 我刚刚注意到了。我书中的例子是使用数组中的整数,所以是的,除非它是一个字符串,否则它不会编译。
标签: c++ arrays string bubble-sort