文章分类 -  Algorithms

数据结构基础算法
摘要:输出所有给定单词所在的行号和该行的内容。用一个类来完成此功能TextQuery[代码]主函数[代码] 阅读全文
posted @ 2010-09-17 20:53 高性能golang 阅读(914) 评论(0) 推荐(0) 编辑
摘要:函数一:intrand(void);从srand(seed)中指定seed开始,返回一个范围介于[seed,RAND_MAX(0x7fff))的随机整数。默认情况下使用的是srand(1)。函数二:voidsrand(unsignedseed);参数seed是rand()的随机种子,即用来初始化rand()的起始值。for(inti=0;i<10;i++)cout<<setw(4)<<rand()%10;每次输出的都是:1740948824srand(1);for(inti=0;i<10;i++)cout<<setw(4)<<rand 阅读全文
posted @ 2010-09-01 20:59 高性能golang 阅读(565) 评论(0) 推荐(0) 编辑
摘要:各种排序算法源代码,各种排序算法性能比较:直接插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,堆排序,二路归并排序,STL排序算法 阅读全文
posted @ 2010-08-30 21:51 高性能golang 阅读(1942) 评论(0) 推荐(0) 编辑
摘要:当你只需要找到最大最小值而不需要查找其他元素时,可以用二叉堆,不需要用用叉查找树。 Java版 java中的PriorityQueue就是个小顶堆(重写元素的compareTo方法可以轻易地改为大顶堆),但是它不能设置堆的最大容量,所以我自己实现了一个MinHeap。 C++版 <!--<br /> 阅读全文
posted @ 2010-08-26 21:42 高性能golang 阅读(757) 评论(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 高性能golang 阅读(2429) 评论(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 高性能golang 阅读(3292) 评论(0) 推荐(0) 编辑