KMP算法介绍http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html为什么java的String没有用KMPhttp://www.zhihu.com/question/27852...
分类:
其他好文 时间:
2015-07-13 11:49:33
阅读次数:
93
1.算法介绍 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。2.算法原理 第一趟,从n 个记录中找出关键码最小的记录与第一个记录交.....
分类:
编程语言 时间:
2015-07-12 20:21:12
阅读次数:
139
1.算法介绍 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]...
分类:
编程语言 时间:
2015-07-12 20:20:51
阅读次数:
161
1.算法介绍 按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。2.算法原理 两种多关键码排序方法: 多关键码排序按照从最主位关键码到最...
分类:
编程语言 时间:
2015-07-12 20:20:44
阅读次数:
127
1.算法介绍 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。2.算法原理 第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 第二步:设定两个指针,最...
分类:
编程语言 时间:
2015-07-12 20:19:37
阅读次数:
155
1.算法介绍 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。2.算法原理 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中; 依次进行下去,进行了(n-1)趟扫描以后就完成了整个排...
分类:
编程语言 时间:
2015-07-12 20:17:33
阅读次数:
156
1.算法介绍 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.算法原理 1)选择一个基准元素,通常选择第一个元素或者最后一个元素, 2)通...
分类:
编程语言 时间:
2015-07-12 20:14:50
阅读次数:
125
1.算法介绍 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。2.算法原理 先将要排序的一组记录按某个增量d(n/2,n为要排序数的个数)分成若干组子序列,每组中记录的下标相差d.对每组中全部元素进行直接插入排序.....
分类:
编程语言 时间:
2015-07-12 20:14:46
阅读次数:
150
1.算法介绍 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。2.算法原理 冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2...
分类:
编程语言 时间:
2015-07-12 18:44:28
阅读次数:
168
adjacent_find()
在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。
#include
#include
#include
#include
using namespace std;
void play_adjacent_find()
{
vector v1;
v1.pu...
分类:
编程语言 时间:
2015-07-10 16:46:50
阅读次数:
157