数组实现双端队列的时候注意区别判断上溢和下溢。用两个栈实现队列,就相当于把两个栈底靠在一起(背靠背),一个栈用来出队列,一个栈用来进队列。这个队列的操作时间大部分时候是常数时间,除了出列的栈为空,需要把进列的栈全部转移过去,再出列。Back()操作和Pop()操作类似,也是这样。而两个队列实现栈,队...
分类:
编程语言 时间:
2015-04-11 20:41:49
阅读次数:
254
题目
2-3-4树是B树的特例,是度为2的B树。在B树这篇博客中,我们实现的B树是一个模板,因此要得到2-3-4树,即度为2的B树非常容易,只要如是声明就可以了——Btree bt,其中int是所存元素类型。
在本题中,要实现的是2-3-4树的链接与分裂。参看红黑树的连接操作我们不难得到2-3-4树的链接方法。现在,我们对于2-3-4树的链接也予以推广,即实现任意度数的B树...
分类:
编程语言 时间:
2015-04-11 09:05:41
阅读次数:
146
基数排序又称桶排序,对排序数组的每一位进行比较后排序,依次对每一位排序完成,最终就可以得到整个数组的排序。...
分类:
编程语言 时间:
2015-04-11 09:00:55
阅读次数:
127
It is amazing!列排序算法看起来很奇怪,但是它真的可以用来对所有数据排序,只不过需要有一些条件。列排序算法是用于包含n个元素的矩形数组的排序,这个数组r行s列,满足下面三个条件:1) r为偶数2) s为r的因子3) r大于等于2s2这里就不去证明这个算法的正确性,证明见算法导论思考题8-...
分类:
编程语言 时间:
2015-04-10 21:49:43
阅读次数:
185
使用STL中priority_queue(由最大最小堆实现的)来实现。注意传递参数的时候需要传递三个。模板声明:priority_queue这里的实现要求输入完全正确,所以代码移植性非常差。#include #include #include using namespace std;typedef ...
分类:
编程语言 时间:
2015-04-10 14:57:29
阅读次数:
179
水壶问题要求我们把红蓝水壶进行配对。如何才能让红蓝水壶一一对应,那就是分别对它们进行排序。所以这里借助快排的思想来进行排序,红水壶数组使用蓝水壶中的pivot来排序,蓝水壶使用红水壶中的pivot来排序。由于前提条件红水壶有一个对应的蓝水壶,反之亦然,且红水壶内部各不相同,所以排序就很简单,稍微修改...
分类:
编程语言 时间:
2015-04-10 11:11:16
阅读次数:
406
第一步,先按数据的长度排序,计算出数据的长度(一般大小为正整数),然后按计数排序的方法排序第二步,对相同长度的数据进行基数排序。基数排序采用计数排序作为稳定排序。这里遇到了一些问题,1) 数组到底是按参数传入还是在被调用函数内部分配?2) 第二问里面a#include #include using ...
分类:
编程语言 时间:
2015-04-09 23:21:41
阅读次数:
259
1. 插入排序类似于整理扑克牌(排列好顺序的扑克和待排序的扑克);2. 插入排序(INSERTION-SORT)参数是一个数组A[1..n]共n个数,输入的各个数字原地排序(sorted in place),分为排好序的和待排序的,每次取一个待排序元素,找到插入的位置,插入已排好序的部分中。元素取完...
分类:
编程语言 时间:
2015-04-09 17:01:05
阅读次数:
132