【发布时间】:2019-01-21 06:31:58
【问题描述】:
我知道冒泡排序和选择排序对数字进行排序,但它也可以用单词来做吗?它可以按字母顺序排列列表吗?我制作了一个选择排序程序和冒泡排序,但不知道如何将其更改为使用单词。我需要制作一个程序,从用户那里接收带有数量的项目,并按字母顺序输出它们,同时仍然保持数字。我不是以任何方式要求整个程序,只是这个详细的帮助。我也知道它建议在此使用并行数组。请,谢谢!
void selectionSort(int arr[], int length)
{
int lowest = 0;
int temp;
//each time moving the lowest item
for(int i=0; i < length-1; ++i)
{
//goes through array once starting from "boundary"
lowest = i;
for(int j=(i+1); j < length; ++j)
{
if(arr[j] < arr[lowest])
{
lowest = j;
}
}
//swap
temp = arr[i];
arr[i] = arr[lowest];
arr[lowest] = temp;
}
}
【问题讨论】:
-
如果你可以为它定义一个比较运算符,那么任何排序算法都可以对它进行排序。我确实建议使用
std::sort和std::vector,而不是尝试全部手写。 (和std::swap) -
你需要了解字符串在 C 中是如何工作的。
-
您可以对所有可以订购的东西进行排序。 “顺序”意味着有一个较少的谓词(例如重载
operator<)满足:1)如果a operator< 排序相似(比较字符的 ASCII 值)。但是,它不一定是在现实生活中有意义的顺序,当然这些都包括在内。例如。我曾经按位模式对浮点值进行排序,这足以满足我的需要。 -
你需要一个排序教程。
-
您只看到(并编写)对数字进行排序的实现的原因是它们提供了非常简单的示例,而不是您无法对其他任何内容进行排序。
标签: c++ sorting alphabetical