不是自己亲自去做,永远都不会知道这其中的难处~...
分类:
编程语言 时间:
2014-12-22 14:29:52
阅读次数:
159
基本思想
快速排序的基本思想是基本思想是,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。快速排序使用分治法来把一个串(list)分为两个子串行(sub-lists)。
注意分组的时候先从右边开始比较,因为之前记录的基数是开始的位置,所以循环之前开始部分是空的,因此从右边开始。分组时需...
分类:
编程语言 时间:
2014-12-20 18:19:21
阅读次数:
128
这里是地址 http://de.visualgo.net/7VisuAlgo开始训练!这是中文的网站http://visualgo.net.请参阅本文更多详情..VisuAlgo.net数据结构和算法动态可视化 (Chinese)排序冒泡选择插入归并快速随机快速选择插入计数基数排序cs2020cs1...
分类:
编程语言 时间:
2014-12-18 11:50:35
阅读次数:
472
实现基数排序的方式有多种,但思维是一样的,可以用数组来模拟桶的操作。还是那句话,不是自己亲自敲出来,永远都不知道它的难度。...
分类:
编程语言 时间:
2014-12-17 18:36:51
阅读次数:
209
在数据库日渐庞大的时候,为了方便对数据库数据的管理,比如按时间,按地区去统计一些数据时,基数过于庞大,多有不便。很多商业数据库都提供分区的概念,按不同的维度去存放数据,便于后期的管理,PG也不例外。下...
分类:
数据库 时间:
2014-12-17 13:11:47
阅读次数:
216
经典排序算法 - 基数排序Radix sort
原理类似桶排序,这里总是需要10个桶,多次使用
首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数
例如
待排序数组[62,14,59,88,16]简单点五个数字
分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样
| 0 | 0 | 62 | 0 | 14 | 0 ...
分类:
编程语言 时间:
2014-12-16 13:35:28
阅读次数:
187
经典排序算法 - 计数排序Counting sort
注意与基数排序区分,这是两个不同的排序
计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长
大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶
看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组
var unsorted = new int[] { 6, 2, ...
分类:
编程语言 时间:
2014-12-16 13:34:36
阅读次数:
165
经典排序算法 - Proxmap Sort
这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解
先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶
这个排序把数字分区了,然后给出一个所谓的键,例如它规定0-9都入0号桶
10-19都入1号桶,这样桶覆盖的范围将增大10倍,这在某种情况下是很有用的
有了桶排的基础后,再看下边两张图就什么都明...
分类:
编程语言 时间:
2014-12-16 13:32:39
阅读次数:
157
经典排序算法 - Cycle Sort
Cycle sort的思想与计数排序太像了,理解了基数排序再看这个会有很大的帮助,
圈排序与计数排序的区别在于圈排序只给那些需要计数的数字计数,先看完文章吧,看完再回来理解这一句话
所谓的圈的定义,我只能想到用例子来说明,实在不好描述
待排数组[ 6 2 4 1 5 9 ]
排完序后[ 1 2 4 5 6 9 ]
数组索引[ 0 1 2 3 4 ...
分类:
编程语言 时间:
2014-12-16 13:30:35
阅读次数:
219