algorithm - 哲学排序思想

标签 algorithm sorting sequence

<分区>

对数组进行排序是指按顺序引入,还是恢复数字序列中固有的顺序?

这是我在网上阅读的一些算法分析资料中提出的一个想法,它让我想知道哪个是真的。我可以想到双方的论点,但有没有比另一个更“正确”的答案?

最佳答案

这是一个思想实验。 [注1]

假设我有一个非常大的未排序行文件,其中一些是重复的。我想要行的唯一值的随机样本。我有一个通用的排序函数。

现在,我可以对文件进行排序,删除重复项,然后进行随机抽样。但这似乎比我真正需要的要多一些。

相反,如果我根据排序键对文件进行排序,该排序键是每行随机选择的哈希函数,会怎样? (顺便说一下,这个想法不是我的。它实际上是由 GNU 排序实现的。)现在,我只需要删除重复项,直到我完成样本的大小。

这可能不是我的问题的最佳解决方案,但它是一个合理的解决方案,它利用了现有工具的一些优势。但这不是这个问题的重点:重点是没有任何可以想象的方式可以说这个算法完成的排序操作是值的固有属性;事实上,它只是大量(虽然有限)可能的类似排序操作中的一个,每个操作(可能)产生不同的顺序。


注意事项:

  1. 实际上,这不是思想实验;它基于 a question elsewhere on SO , 但我们可以将其视为思想实验 :)

关于algorithm - 哲学排序思想,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26128331/

相关文章:

algorithm - Q学习算法问题

c++ - 如何在 multimap 中按排序顺序打印键的值

kotlin 中的 Java 8 stream.collect(Collectors.toMap()) 模拟

java - Java中类的等价关系和自然排序

mongodb - 如何在每个组中选择最大项目?

sql - 甲骨文日期序列?

c++ - 如何插入颜色序列?

algorithm - 这个密文和明文之间有什么关系?

algorithm - 将复杂度从 O(n) 更改为 O(1)

algorithm - 使图表有根