排序算法1
1、梳排序
梳排序是在冒泡排序的基础上改进的,原理:将待排序数组的长度/1.3的近似值作为比较距离进行比较和交换,直到距离小于3,之后每次减一进行比较和交换。
例:数组[9,5,6,7,3,4,5,9,8,15]
(1)数组长度为10,第一次的比较距离为10/1.3 = 8
比较的数据有9和8,5和15
比较交换后的结果为
[8,5,6,7,3,4,5,9,9,15]
(2)第二次的比较距离为8/1.3 = 6
比较的数据有8和5,5和9,6和9,7和15
比较交换后的结果为
[5,5,6,7,3,4,8,9,9,15]
(3)第三次的比较距离为6/1.3 = 4
比较的数据有5和3,5和4,6和8,7和9,3和9
比较交换后的结果为
[3,4,6,7,5,5,8,9,9,15]
(4)第四次的比较距离为3
结果为
[3,4,5,7,5,6,8,9,9,15]
(5)第五次的比较距离为2
结果为
[3,4,5,6,5,7,8,9,9,15]
(6)第六次的比较距离为1
结果为
[3,4,5,5,6,7,8,9,9,15]
参考:http://www.cnblogs.com/kkun/archive/2011/11/23/2260293.html