- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 【算法导论】二叉查找树的操作C++实现
本代码为算法导论第12章中,伪代码的C++实现:#include #include using namespace std;/*二叉查找树结构*/typedef struct BSTree{ int node_value; struct BSTree * left; struct BSTree * right; struct BSTree * parent;}Tree;T
2012-10-15 11:11:03 1691
原创 【算法导论】线性时间选择---从数组中选择第i小的数
问题:从数组中选择第i小的数,并且要求问题的时间复杂度为O(n)。代码用到了随机化的快速排序中的分组方法。其基本原理为:用快速排序的分组方法,随机的选择一个数组元素,使其大于左边的元素,小于右边的元素。然后,看这个元素的下表与要求元素中第i小的值是否相等,如果小于i则表示要查找的元素在当前分组元素的右边,如果大于i表示在左边。这样递归进行,可以达到很高的运行效率。c++实现的代码如下:
2012-10-12 20:07:28 5246
原创 【面试题精选】4 优先级队列,堆积
优先级队列为,首部元素最大,总是删除当前最大元素。并在尾部插入元素。删除元素的时间复杂度为O(1),插入元素的时间复杂度为O(lgn),效率非常高。C++实现代码如下:#include using namespace std;const int MAX_SIZE = 1024;int Tail = 0;int PriorStack[MAX_SIZE]={0};bool
2012-10-07 18:24:37 1565 1
原创 【面试题精选】3 数字操作-翻转及求和
在这里介绍两个操作数字的小程序,程序不难,但是需要一定的技巧:代码如下:#include using namespace std;int digitSum(int digit);int digitReverse(int num);int main(int argc,char * argv[]){ return 0;}/*返回正整数中的各位数字之和,比如49205返回20*/
2012-10-04 20:08:53 1222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人