【发布时间】:2016-07-12 13:30:54
【问题描述】:
我一直在阅读The Art of Computer Programming,虽然它有一些我无法理解的高等数学,但做一些练习很有趣。
在我完成其中一个之后,我会去寻找答案,看看我是否比书中建议的更好或更差(通常更糟),但我不知道当前的答案是什么m on 试图传达。
本书的问题和建议的解决方案可以找到here
我的理解是t 可能是“缺失”元素的数量,也可能是一个一般常数,但我真正不明白的是看似任意的指令根据它们的组件对它们进行排序,在我看来,这就像在原地旋转你的轮子,因为乍一看它并没有让你更接近原始订单。并且决定(除其他外)用数字替换成对名称的一部分(文件 G 包含 n−t
所以我的问题很简单,如何从这个答案中提取算法?
澄清一点:
我了解它的目的,以及我将如何将其翻译成 C++。我不明白为什么我应该对输入文件的副本进行排序,如果是,我应该按照哪些标准进行排序,以及将对的一侧更改为数字的原因。
【问题讨论】:
-
我能想象的唯一回应是“那个答案是算法。没有什么可提取的。”。但是由于您已将其标记为 C++,我想您实际上想知道如何将算法转换为 C++。这主要是一个仔细阅读的问题。
-
数据代表一个链表。除了第一个和最后一个元素之外,任何特定的数据值都会出现两次。将其链接到正确的顺序。
-
通过编辑,我怀疑您错过了 TAOCP 的要点。这是最难的文本之一,所以不要指望一眼就能理解。读。每一个。单词。在这种情况下,您似乎错过了背景。 如果您在给定的约束条件下工作(无随机访问),那么您需要什么替代解决方案?因为这将是一个没有这些限制的初学者的例子。 TAOCP 是规范的 Comp.Sci 教科书,它教您如何解决缺乏明显解决方案的问题。
标签: sorting sequential taocp