对数组进行排序是指按顺序引入,还是恢复数字序列中固有的顺序?
这是我在网上阅读的一些算法分析材料中提出的一个想法,它让我想知道哪些是真的。我可以想到双方的争论,但有没有比另一个更“正确”的答案?
答案 0 :(得分:1)
这是一个思想实验。 [注1]
假设我有一个非常大的未排序行文件,其中一些是重复的。我想要一个随机的线条唯一值的样本。我有一个通用的排序函数。
现在,我可以对文件进行排序,删除重复项,然后随机抽样。但这似乎比我真正需要的工作多一点。
相反,如果我根据排序键对文件进行排序,该排序键是每行的随机选择哈希函数? (顺便说一句,这个想法不是我的。它实际上是通过GNU排序实现的。)现在,我只需要删除重复项,直到我完成样本的大小。
这可能不是我的问题的最佳解决方案,但它是一个合理的解决方案,它利用现有工具的一些优势。但这不是关于这个问题的重点:重点是没有可能的方法可以说这个算法完成的排序操作是值的固有属性;实际上,它只是一个非常大(尽管有限)的可能类似排序操作中的一个,每个操作(可能)产生不同的顺序。
备注:强>