字母数字排序

时间:2020-03-05 18:57:26  来源:igfitidea点击:

排序字母数字字段的最佳/最快方法是什么?

解决方案

回答

我们会发现大多数开发库都附带了快速排序算法的实现,该算法通常是最快的排序算法。在此处查看Wikipedia链接。

回答

我们无需指定目标语言,但是无论它是什么,它都应该具有可靠的内置排序方法,因此请使用其中一种!对于PHP ...

装入数组并排序($ array);

PHP的排序...

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);

foreach ($fruits as $key => $val)
{
    echo "fruits[" . $key . "] = " . $val . "\n";
}

输出:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

回答

泡泡排序!只是在开玩笑 :)

最好的选择可能是快速排序或者合并排序。

两者都是O(nlogn),而不是冒泡排序的O(n ^ 2)

回答

在C#中,List具有.Sort()。

通常,QuickSort在许多情况下都非常快,但是它始终取决于数组的大小,

链接在这里

回答

我们问题的答案与我们未提供的一些详细信息密切相关。 "最佳/最快"方式取决于字段的长度,必须排序的数量,可用的内存量,磁盘和内存的相对速度,字符串中...的详细信息,...,广告恶心。

Knuth第3卷详细介绍了各种方法。我不记得他是否讨论过"基数排序",但是他可能会。如果他不这样做,则应该在"基数排序"上查找一些参考。它仅在少数情况下有用,但肯定会飞到那里。如果我们有一小部分短字符串,那么由于开销较低,Bubble Sort在某些体系结构上的性能将比复杂排序好。 C运行时库包含快速排序的版本,因为在某些情况下,它对于较大的数据集而言可能是非常有效的算法。

网络,答案是"取决于"。

回答

"最佳"方式取决于许多因素:

  • 我们需要支持的不仅仅是语言吗?
  • 我们需要同时支持多种语言吗?
  • 我们是否需要支持当前操作系统或者用户语言以外的其他语言? (例如,Web应用程序)
  • 我们需要支持多种编码吗? (unicode,utf-16le / utf-8,ansi代码页等)
  • 我们需要支持长输入还是高度冗余输入? (预计算或者压缩可以加快分类操作的速度)
  • 我们是否需要支持大量输入,例如:百万或者十亿输入?