对字母数字字段进行排序的最佳/最快方法是什么?
问问题
3703 次
6 回答
1
您无需指定目标语言,但无论它是什么,它都应该具有可靠的内置排序方法,因此请使用其中一种!对于 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
于 2008-09-16T22:50:02.177 回答
1
您的问题的答案与您未提供的一些细节密切相关。“最佳/最快”的方式取决于字段的长度、您必须排序的数量、可用的内存量、磁盘和内存的相对速度、字符串中的内容的详细信息,...,广告恶心。
Knuth Vol 3 详细介绍了各种方法。我不记得他是否讨论过基数排序,但他可能会讨论。如果他没有,您应该查找有关 Radix Sorting 的一些参考资料。它仅在有限的情况下有用,但确实有效。如果您有一小部分短字符串,由于开销较低,冒泡排序在某些架构上的性能将优于复杂排序。C 运行时库包括一个版本的快速排序,因为在某些情况下,它对于较大的数据集可能是一种非常有效的算法。
Net-net,答案是“视情况而定”。
于 2008-09-16T22:52:18.960 回答
1
“最佳”方式取决于很多因素:
- 您需要支持的不仅仅是语言吗?
- 您是否需要同时支持一种以上的语言?
- 您是否需要支持当前操作系统或用户语言以外的语言?(例如,网络应用程序)
- 您是否需要支持多种编码?(unicode、utf-16le/utf-8、ansi 代码页等)
- 您是否需要支持长输入或高度冗余输入?(预计算或压缩可能会加快排序操作)
- 您是否需要支持大量输入,例如:百万或十亿输入?
于 2008-09-16T22:52:31.860 回答
0
您会发现大多数开发库都附带了快速排序算法的实现,这通常是最快的排序算法。在此处查看Wikipedia 链接。
于 2008-09-16T22:48:09.030 回答
0
于 2008-09-16T22:50:17.217 回答