[译]算法_排序_开篇

排序问题和排序算法

排序是一个经典的重排元素顺序的问题(其元素可以是整型、浮点型、字符串等可比较的类型)。可以重排为递增序列、非递减序列1,递减序列,非递增序列2

排序算法非常多,各有优势与其限制。

排序通常是大学计算机学科中,介绍算法思想的入门问题。

不失一般性的,假定在本教学中我们只以非递减顺序排序整型,元素无需排重。

[译]数据结构_队列_总结

①链表 ②栈 ③队列 ④双向链表 ⑤双端队列

这物种结构的插入操作都是相同的,而查找/插入/移除有些微差别。

  • 栈,只能从头/栈顶执行peek/push/pop操作,都是严格受限的。
  • 队列,只能从队首peek,从队尾push,从队首pop。
  • 双端队列,只能从两端peek/enqueue/dequeue,而不能从中间操作。

顺序链表和双向链表没有上述限制。

[译]数据结构_双向链表

双向链表和顺序链表99%都是相同的。主要的区别是:每个节点包含两个指针,next指针指向后一个元素(若存在)即aj指向aj+1,另一个prev指针指向前一个元素,即aj指向aj-1(若存在)。

prev指针是的双向链表能够反向遍历,但同时也增加了内存的消耗。它解决了顺序链表中移除尾元素的低效问题。