快速排序(n*lgn 不稳定):数组中随机选取一个数x(这里选择最后一个),将数组按比x大的和x小的分成两部分,再对剩余两部分重复这个算法直到结束。def quick_sort(a) (x = a.pop) ? quick_sort(a.select{|i| i x}) : []end冒泡排序(.....
分类:
编程语言 时间:
2015-06-18 23:57:52
阅读次数:
380
排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间或者时长排序、买东西会按照销量或者好评度排序、查找文件会按照修改时间排序等等。在计算机程序设计中,排序和查找也是最基本的算法,很多其他的算法都是以排序算法为基础,在一般的数据处理或分析中,通常第一步就是进行排序,比如说二分查找,首先要对数据进行排序。在Donald
Knuth 的计算机程...
分类:
编程语言 时间:
2015-06-02 17:56:18
阅读次数:
289
归并排序思想归并排序和快速排序一样,都采用了分治的思想。将数组不断缩小,并行排序(递归),这样可以提高速度。那么归并又是怎样分治的呢?和快排一样,分为两个步骤:
1. 写一个函数,输入为两个有序的数组,经过函数后要求这两个数组合并成一个,并且有序。
2. 将原数组不断二分,将分开的两个数组作为参数传入1步奏的函数中。递归完毕函数就已经排序成功。代码实现首先我们来看步骤1的函数:void merg...
分类:
编程语言 时间:
2015-06-01 13:19:49
阅读次数:
131
快速排序思想:快速排序的思想巧秒,利用分治的思想,可以极快排序数组。其基本思想分两步:
1. 给你一个数组,让你选择数组中的任意一个数作为基数,然后让数组中所有比基数小的数都放在放在基数的左边,所有比基数大的数放在基数的右边。
2. 将刚才基数的位置作为中点,将数组中基数左边的所有元素做1操作,将基数右边的所有元素做1操作。
看到步骤2,就很容易想到这里面是递归调用的。所以我们的关键任务就是如...
分类:
编程语言 时间:
2015-05-09 15:05:48
阅读次数:
361
希尔排序
希尔排序是本人非常喜欢的一种排序,虽然网上很多人说这种排序是不稳定的,但是实践出真知,大家可以将所有排序方法放在一起跑一堆数据,希尔排序速度是非常快的,很多时候甚至比快排更快哦!也许是我的实验数据不够吧,大家可以亲测一下!
原理:希尔排序的原理很简单,只要前面的插入排序看懂了,希尔排序就会很easy,因为希尔排序是是对插入排序的增强版。希尔排序提出的思想是先让数据局部有序,然后再排。比...
分类:
编程语言 时间:
2015-05-07 12:34:12
阅读次数:
182
插入排序
今天来看看插入排序是怎么个排发,我觉得插入排序和冒泡有点像,但是又不错的改进。
原理:从一个索引开始,如果它前面的元素值比索引位置值更大,就将前面元素值往后移动一个位置,然后再看更前面的元素,知道找到第一个比索引位置小的元素或数组的头,将索引位置的值填入到当前遍历到的位置。文字看起来比较抽象,我们来看一下图解:
之所以被称为插入排序,就是因为上面的元素是有序的,然后从后面每一个元素要...
分类:
编程语言 时间:
2015-05-06 09:15:59
阅读次数:
141
简单算法O(n^2):冒泡法=i;j--) { if(sortList[j]sortList[j]) minIndex=j; } if(minIndex!=i) swap(sortList,i,minIndex); }}直接插入排序 1 void DirectInsertionS...
分类:
编程语言 时间:
2015-04-28 22:28:20
阅读次数:
157
http://blog.sina.com.cn/s/blog_61bebe480100v7c7.html基本的C++算法分为三类:排序算法、树算法、图算法算法思想有三种:递推、分治、动态规划 以及 贪心算法。本文将简要介绍上面三类算法,介绍时穿插介绍算法思想。一、排序算法1、基本O(n^2)排序算法...
分类:
编程语言 时间:
2015-04-20 10:51:33
阅读次数:
201
排序数组:$arr(1,43,54,62,21,66,32,78,36,76,39);
用四种排序算法进行排序
冒泡排序:(思路:对未排好序的数,从前往后两个数一次进行比较和调整,大的下沉,小的上升)
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function bubbleSort($arr)
...
分类:
编程语言 时间:
2015-04-19 21:25:37
阅读次数:
169
javascript数据结构与算法--基本排序算法分析
分类:
编程语言 时间:
2015-04-01 23:37:41
阅读次数:
196