摘要: Counting Sort 计数排序 计数排序其实就是利用了数组可以O(1)时间访问元素的特性,来排序,可是如果数据范围很大时是很浪费空间的。 伪代码: 通过数组来判断大小,和在序列中所在的位置,从而进行排序。 代码如下: 阅读全文
posted @ 2016-12-28 11:18 fengsz 阅读(93) 评论(0) 推荐(0) 编辑
摘要: Quick Sort 快速排序是目前最快的排序方法,他就是利用了分治的思想和分割(上一篇文章有讲)来完成排序。将序列进行分割,然后在将分割的前半段再分割,后半段也分割,知道前半段分割到不能再分,后半段也分到不能再分,就可以了。 代码如下: 阅读全文
posted @ 2016-12-28 11:04 fengsz 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Partition 分割 函数partition(A,p,r)是一个可以将序列A【p…r】分割成A【p…q - 1】和A【q + 1…r】两部分并返回下标q的值的函数。并且能让A【p…r】中A【p…q - 1】的元素均小于A【q + 1…r】的所有元素。 例如:13 19 9 5 12 8 7 4 阅读全文
posted @ 2016-12-28 10:58 fengsz 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Merge Sort 归并排序 归并排序就是不断的将自己原有的序列从中间砍开,然后不断的从两边选出小的那个数放入另一个数组中。 例如:8 5 9 2 6 3 7 1 10 4 这个序列我们就可以将他砍成两半。 步骤一:8 5 9 2 6 | 3 7 1 10 4 排序数组: 步骤二:8 5 9 2 阅读全文
posted @ 2016-12-28 10:24 fengsz 阅读(217) 评论(0) 推荐(0) 编辑