算法
小弋呀
这个作者很懒,什么都没留下…
展开
-
归并排序
http://www.cnblogs.com/zichi/p/4796727.html 我们再进一步看,其实递归调用的结果形成了一棵二叉树!我们以数组[2, 1, 3, 4, 7, 6, 5]为例,代入数据到之前的快排算法中,堆栈中其实形成了一棵如下二叉树(二叉搜索树): 4 / \1 6 \ / \ 2 5 7 \ 3当递归到最底层向上回溯时,其实我们转载 2017-06-27 17:33:32 · 216 阅读 · 0 评论 -
快速排序
快速排序的思路: 1. 从数组中随机选择一项作为基准项 2. 遍历数组,将>基准项的放到基准项右边,<=基准项的放到其左边 3. 将左右新的数组重复步骤1、2,知道只有一项为止var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1];function quickSort(a) { var length=a.length;原创 2017-06-26 23:47:23 · 167 阅读 · 0 评论 -
插入排序
插入排序的思路: 1. 有一组数据,先从中拿出一个,再拿出第二个时和第一个做比较排序,拿出第三个时和前两个作比较 2. 当拿出第三个比较时,因为前两个已经有序(此处以递增为例),当第三个数大于等于前两个中的最大数时就不需要比较了,这个数直接放在第三位置 3. 如果第三个数小于前两个数中最大,则再和前一个数比较 4. 以后的项以此类推var a=[555,68,88,34,10,23,44,5原创 2017-06-27 00:12:05 · 212 阅读 · 0 评论 -
选择排序
选择排序的思路时: 1. 数组第0项依次和后面的想比较,如果第0项较大,则和那项交换,遍历后第0项成为数组最小的那项 2. 第2项再和后面的项比较,最后第二项变成第二小的项 3. 依次类推var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1];function selectSort(a) { for(var i=0,lengt原创 2017-06-27 00:27:24 · 158 阅读 · 0 评论 -
冒泡排序
冒泡排序的思路 1. 相邻两个项依次比较,以增序为例,如果前一项小于后一项则两项交换,最后最大的一项放在了数组的最后一项 2. 第二轮比较因为最后一个已经是最大的项,所以不需要在比较 3. 依次类推,每一轮都会产生一个较大值var a=[555,68,88,34,10,23,44,54,6,122,58,50,400,324,8,1];function bubbleSort(a) {原创 2017-06-27 00:49:35 · 158 阅读 · 0 评论 -
二分查找
二分查找的数组是有序的/** * Created by Administrator on 2017/6/27. */var a=[ 1, 6, 8, 10, 23, 34, 44, 50, 54, 58,68,68, 68, 68, 88, 122, 324, 400, 555 ];function midSearch(a,data) { var low=0, upp原创 2017-06-27 18:52:49 · 174 阅读 · 0 评论