插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
编程语言 时间:
2015-01-07 14:47:26
阅读次数:
160
排序算法注意点:
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,...
分类:
编程语言 时间:
2015-01-06 18:03:00
阅读次数:
165
SparkVSMapReduce时间节约66%,计算节约40%http://mp.weixin.qq.com/s?__biz=MzA3MjY1MTQwNQ==&mid=200820787&idx=1&sn=638a4b16445a5ee7a184b7a9becf4d5d&scene=2&from=timeline&isappinstalled=0#rd数据挖掘十大算法总结--核心思想,算法优缺点,应..
分类:
其他好文 时间:
2015-01-05 07:09:45
阅读次数:
375
1.冒泡排序
基本思想是:两两比较相邻记录的关键字,如果反序则交换
冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2)
改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = false),说明排序已经完成
改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok.
原冒泡排序代码如下:
void swap(int l...
分类:
编程语言 时间:
2015-01-04 19:16:51
阅读次数:
266
讨论分为3种,第一种是搜索队列中任意我们需求的结果,第三种我们需求队列中有多个返回第一个,第四种未我们搜索队列中有多个返回最后一个元素的index。
第一种: 在一行排好序队列a中搜索target,一定有。
int binarySearch(int a[],int n, int target)
{
int start = 0,end = n-1;
while(start...
分类:
编程语言 时间:
2015-01-04 11:31:06
阅读次数:
152
算法总结第5弹,最小生成树,有关生成树的问题有很多,这里先介绍个最常用的吧。
最小生成树
首先,生成树是建立在无向图中的,对于有向图,则没有生成树的概念,所以接下来讨论的图均默认为无向图。对于一个有n个点的图,最少需要n-1条边使得这n个点联通,由这n-1条边组成的子图则称为原图的生成树。一般来说,一个图的生成树并不是唯一的(除非原图本身就是一棵树)。
现在考虑带权图G,即图的边带权,则...
分类:
编程语言 时间:
2014-12-30 15:15:26
阅读次数:
341
1.贝叶斯分类器: 用途:分类,举例:垃圾邮件过滤。 是一种典型的监督算法。需要经过训练才能后续进行分类。 进行贝叶斯分类的时候,最重要的环节是特征的提取,这个将训练或者分类的数据转化成一个特征列表。 优点:速度快。对分类器实际学习状况的解释相对简单。 缺陷:无法处理基于特征组合所产生的变化结果。 ...
分类:
编程语言 时间:
2014-12-28 23:28:54
阅读次数:
234
Manacher算法
算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。
相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和Z算法有很多共通支出,所以在这里介绍一下。Manacher算法是查找一个字符串的最长回文子串的线性算法。
在介绍算法...
分类:
编程语言 时间:
2014-12-21 16:38:53
阅读次数:
226
//bubble sort?123456789101112131415161718192021222324252627282930function bubbleSort(arr,comp){for(var i = 0;i b;});console.log(input);input = new Ar....
分类:
编程语言 时间:
2014-12-18 16:44:58
阅读次数:
268