摘要: 当你只需要找到最大最小值而不需要查找其他元素时,可以用二叉堆,不需要用用叉查找树。 Java版 java中的PriorityQueue就是个小顶堆(重写元素的compareTo方法可以轻易地改为大顶堆),但是它不能设置堆的最大容量,所以我自己实现了一个MinHeap。 C++版 <!--<br /> 阅读全文
posted @ 2010-08-26 21:42 张朝阳讲go语言 阅读(768) 评论(0) 推荐(0)
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//set是一个排序后的容器,该容器不容许重复.//map用来存储排序后的键值对,键必须唯一.//set和map支持在最坏情况下对基本操作insert,erase和find仅消耗对数时间.//相应的底层实现是平衡二叉树.典型的用法不是使用AVL树,而常常是使用自顶向下的红黑树.//set和map的每一个元素都是一个pair的实例. 1 #include<iostream> 2 #in 阅读全文
posted @ 2010-08-26 18:00 张朝阳讲go语言 阅读(2445) 评论(0) 推荐(0)
摘要: 二分查找可以找到元素在数组中的下标位置,而查找树由于采用的是树结构,所以只能判断出元素是不是在树中以及给出最大/小值,而不能确定指定元素的确切位置。二分查找#include<vector>#include<iostream>#include<algorithm>#include<cstdlib>#include<iomanip> //cout格式化输出#include<ctime>using namespace std; const int NOT_FOUND=-1;const long MUL=16807L; const 阅读全文
posted @ 2010-08-26 11:45 张朝阳讲go语言 阅读(3304) 评论(0) 推荐(0)