摘要: 1. 命令历史history 可通过环境变量来定制history功能,环境变量有: HISTSIZE 定制内存中保存的条目数 HISTFILE 持久保存的文件路径 HISTFILESIZE 文件保存起来的条目数 HISTCONTROL 取值有:ignoredups、ignorespace(命令前加一 阅读全文
posted @ 2020-01-30 10:34 一只美丽的呱呱 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.2 6 动态集合操作Union以两个不相交集合S1和S2作为输入,并返回集合S = S1∪S2。该操作通常会破坏集合S1和S2。试说明如何选用一种合适的表类数据结构,来支持O(1)时间的Union操作。 O(1)时间能干嘛?不能移动元素,只能改改指针,所以采用链表最合适,这道题采用 阅读全文
posted @ 2018-12-27 16:48 一只美丽的呱呱 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.2 2 用一个单链表实现一个栈,要求操作push和pop的运行时间仍为O(1) ~~~ include template class StackByList { public: void push(const Object& object) { sll.push_front(obj 阅读全文
posted @ 2018-12-25 18:46 一只美丽的呱呱 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.2 5 使用单向循环链表实现字典操作插入、删除、查找,并给出运行时间。 单链表虽然不能像双链表一样,实现在任意位置上时间O(1)的插入删除,但是可以在预先指定的位置上实现O(1)时间的插入删除。因为只有该位置的前驱后继两个元素会受到影响,只要维护起这两个元素的信息就够了。 也因为这 阅读全文
posted @ 2018-12-25 18:08 一只美丽的呱呱 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 压栈操作直接用队列的enqueue操作模拟。这道题的难点在于如何模拟出栈操作。 队列中的元素只有在成为队头后才有资格被dequeue操作删掉,那么这道题其实是在问,如何把一个队列的队尾移动到队头位置,删除它之后,其他元素可以按原顺序放回?把队列A的元素依次出队,并送入队列B,直到队列A中只剩下一个元 阅读全文
posted @ 2018-12-25 14:30 一只美丽的呱呱 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.1 6 用两个栈实现一个队列,并分析相关队列操作的运行时间。 把栈顶元素当做队尾元素,向队尾插入的操作可以直接用栈的push来完成,这道题的关键是如何实现从队头删除的操作。 相应的,栈底元素就相当于队头元素,我们知道,栈底元素是不能自由进出的,而栈顶元素可以,如果我们可以把待删除的 阅读全文
posted @ 2018-12-25 10:46 一只美丽的呱呱 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.1 5 栈插入和删除元素只能在同一端进行,队列的插入操作和删除操作分别在两端进行,与它们不同的,有一种双端队列(deque),其插入和删除操作都可以在两端进行。写出4个时间均为O(1)的过程,分别实现在双端队列的两端插入和删除元素的操作,该队列是用一个数组实现的。 ~~~ incl 阅读全文
posted @ 2018-12-24 18:01 一只美丽的呱呱 阅读(832) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》10.1 2 如何在一个数组[1...n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。要求push和pop操作的运行时间为O(1)。 ~~~ include template class DoubleStack { public: DoubleStack(){i 阅读全文
posted @ 2018-12-24 16:34 一只美丽的呱呱 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 栈和队列的比较 栈和队列都属于线性表,且在其上进行Insert和Delete操作所插入和移除的元素是预先设定的。在栈中,在一端插入,在同一端删除,位于该端点的元素称为栈顶元素;在队列中,在一端插入,在另一端删除,位于两端点的元素分别称为队列尾和队列头。 所以在栈的实现中,需要记录的变量是栈顶元素位置 阅读全文
posted @ 2018-12-24 11:23 一只美丽的呱呱 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 逆序对inversion 在正序排序算法里,对输入序列中的任一对元素i、j,如果排序靠前的元素i小于靠后的元素j,那么元素i、j组成一个正序对,否则组成一个逆序对(inversion)。 自然,当我们把输入序列中这些inversions都消除了,排序就完成了。 交换相邻的元素是消除inversion 阅读全文
posted @ 2018-11-08 11:12 一只美丽的呱呱 阅读(524) 评论(0) 推荐(0) 编辑