用于对字符串进行排序的 C++ sort() 函数

Posted

技术标签:

【中文标题】用于对字符串进行排序的 C++ sort() 函数【英文标题】:C++ sort() function for sorting strings [closed] 【发布时间】:2016-01-13 16:42:56 【问题描述】:

几天前,我想使用 c++ sort() 函数对总大小的字符串数组进行排序,但我遇到了问题! 此函数是否使用相同的算法对数字数组和字符串数组进行排序? 如果我们用它来对一个总大小小于 100,000 个字符的字符串数组进行排序,它会在不到 1 秒的时间内工作吗(在最坏的情况下)?

【问题讨论】:

欢迎来到 Stack Overflow!请edit您的问题与minimal reproducible example 或SSCCE (Short, Self Contained, Correct Example) 你试过排序这个字符串数组吗? 它会在不到 1 秒的时间内工作吗(在最坏的情况下)? 这很大程度上取决于架构。在 i7 上,也许在 Atmega16 上,绝对不会。 ...“但我遇到了问题”——我们不是读心术的人。如果您需要帮助解决某个问题,您需要描述您正在尝试做什么、您实际尝试了什么(即提供代码)、您期望的行为以及您实际观察到的行为。见这里:How to ask a good question。如果您对解决该问题没有兴趣,我不确定它与您的其余问题有什么关系。 你说“我有问题!”但你从来没有告诉我们问题出在哪里。 【参考方案1】:

此函数是否使用相同的算法对数字数组和字符串数组进行排序?

可能会也可能不会。标准没有规定。

如果我们用它对总大小小于 100,000 个字符的字符串数组进行排序,它会在不到 1 秒的时间内工作吗(在最坏的情况下)?

可能会也可能不会。这取决于您运行程序的机器。即使它在特定机器上的最坏情况下可以在不到 1 秒的时间内工作,也很难证明。但是你可以通过测量得到一个不错的估计。当然,测量只适用于执行它的机器。

【讨论】:

相同算法:标准没有规定,但很可能所有排序都使用相同的算法。 @MartinBonner 据我所知,该标准没有提及要求所有类型的算法都相同的任何内容。我有一种预感,即使用不同的算法是不值得的,但我不能肯定地说,因为我还没有实现所有的标准库。

以上是关于用于对字符串进行排序的 C++ sort() 函数的主要内容,如果未能解决你的问题,请参考以下文章

C++ 标准库 sort() / stable_sort() / partial_sort() 对比

编写一个sort函数,它用于对任何类型的数组进行排序

JS中的数组排序函数sort()

js中sort()方法冒泡排序模拟

用于对字符串向量进行排序的比较函数(每个字符串都是一个数字)C++

javascript中的数组排序——sort()方法