会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
一只美丽的呱呱
博客园
首页
新随笔
联系
订阅
管理
2020年1月30日
4.2 bash 特性
摘要: 1. 命令历史history 可通过环境变量来定制history功能,环境变量有: HISTSIZE 定制内存中保存的条目数 HISTFILE 持久保存的文件路径 HISTFILESIZE 文件保存起来的条目数 HISTCONTROL 取值有:ignoredups、ignorespace(命令前加一
阅读全文
posted @ 2020-01-30 10:34 一只美丽的呱呱
阅读(156)
评论(0)
推荐(0)
2018年12月27日
8. O(1)时间求两个不相交集合的并集
摘要: 《算法导论》10.2 6 动态集合操作Union以两个不相交集合S1和S2作为输入,并返回集合S = S1∪S2。该操作通常会破坏集合S1和S2。试说明如何选用一种合适的表类数据结构,来支持O(1)时间的Union操作。 O(1)时间能干嘛?不能移动元素,只能改改指针,所以采用链表最合适,这道题采用
阅读全文
posted @ 2018-12-27 16:48 一只美丽的呱呱
阅读(595)
评论(0)
推荐(0)
2018年12月25日
7. 用单链表实现一个栈
摘要: 《算法导论》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 一只美丽的呱呱
阅读(589)
评论(0)
推荐(0)
6. 带哨兵的单向循环链表
摘要: 《算法导论》10.2 5 使用单向循环链表实现字典操作插入、删除、查找,并给出运行时间。 单链表虽然不能像双链表一样,实现在任意位置上时间O(1)的插入删除,但是可以在预先指定的位置上实现O(1)时间的插入删除。因为只有该位置的前驱后继两个元素会受到影响,只要维护起这两个元素的信息就够了。 也因为这
阅读全文
posted @ 2018-12-25 18:08 一只美丽的呱呱
阅读(393)
评论(0)
推荐(0)
5. 用两个队列实现一个栈
摘要: 压栈操作直接用队列的enqueue操作模拟。这道题的难点在于如何模拟出栈操作。 队列中的元素只有在成为队头后才有资格被dequeue操作删掉,那么这道题其实是在问,如何把一个队列的队尾移动到队头位置,删除它之后,其他元素可以按原顺序放回?把队列A的元素依次出队,并送入队列B,直到队列A中只剩下一个元
阅读全文
posted @ 2018-12-25 14:30 一只美丽的呱呱
阅读(224)
评论(0)
推荐(0)
4. 用两个栈实现一个队列
摘要: 《算法导论》10.1 6 用两个栈实现一个队列,并分析相关队列操作的运行时间。 把栈顶元素当做队尾元素,向队尾插入的操作可以直接用栈的push来完成,这道题的关键是如何实现从队头删除的操作。 相应的,栈底元素就相当于队头元素,我们知道,栈底元素是不能自由进出的,而栈顶元素可以,如果我们可以把待删除的
阅读全文
posted @ 2018-12-25 10:46 一只美丽的呱呱
阅读(192)
评论(0)
推荐(0)
2018年12月24日
3. 数组实现的双端队列
摘要: 《算法导论》10.1 5 栈插入和删除元素只能在同一端进行,队列的插入操作和删除操作分别在两端进行,与它们不同的,有一种双端队列(deque),其插入和删除操作都可以在两端进行。写出4个时间均为O(1)的过程,分别实现在双端队列的两端插入和删除元素的操作,该队列是用一个数组实现的。 ~~~ incl
阅读全文
posted @ 2018-12-24 18:01 一只美丽的呱呱
阅读(869)
评论(0)
推荐(0)
2. 一个数组中实现两个栈
摘要: 《算法导论》10.1 2 如何在一个数组[1...n]中实现两个栈,使得当两个栈的元素个数之和不为n时,两者都不会发生上溢。要求push和pop操作的运行时间为O(1)。 ~~~ include template class DoubleStack { public: DoubleStack(){i
阅读全文
posted @ 2018-12-24 16:34 一只美丽的呱呱
阅读(456)
评论(0)
推荐(0)
1. 栈和队列的数组实现
摘要: 栈和队列的比较 栈和队列都属于线性表,且在其上进行Insert和Delete操作所插入和移除的元素是预先设定的。在栈中,在一端插入,在同一端删除,位于该端点的元素称为栈顶元素;在队列中,在一端插入,在另一端删除,位于两端点的元素分别称为队列尾和队列头。 所以在栈的实现中,需要记录的变量是栈顶元素位置
阅读全文
posted @ 2018-12-24 11:23 一只美丽的呱呱
阅读(253)
评论(0)
推荐(0)
2018年11月8日
通过交换相邻元素进行排序的算法所需平均时间为Ω(N^2 )
摘要: 逆序对inversion 在正序排序算法里,对输入序列中的任一对元素i、j,如果排序靠前的元素i小于靠后的元素j,那么元素i、j组成一个正序对,否则组成一个逆序对(inversion)。 自然,当我们把输入序列中这些inversions都消除了,排序就完成了。 交换相邻的元素是消除inversion
阅读全文
posted @ 2018-11-08 11:12 一只美丽的呱呱
阅读(546)
评论(0)
推荐(0)
下一页
公告