排序算法整合(冒泡,快速,希尔,拓扑,归并)( 六 )

代码实现:

/**
* @param
* a -- 待排序的数组
* n -- 数组的长度
*/
public static void insertSort(int[
a int n) {
int i j k;
for (i = 1; i < n; i++) {
//为a[i
在前面的a[0...i-1
有序区间中找一个合适的位置
for (j = i - 1; j >= 0; j--)
if (a[j
< a[i
)
break;
//如找到了一个合适的位置
if (j != i - 1) {
//将比a[i
大的数据向后移
int temp = a[i
;
for (k = i - 1; k > j; k--)
a[k + 1
= a[k
;
//将a[i
放到正确位置上
a[k + 1
= temp;



运行和冒泡一样 。 。 。 。 。

希尔排序:

希尔(Shell)排序又称为缩小增量排序 , 它是一种插入排序 。 它是直接插入排序算法的一种威力加强版 。 该方法因DL.Shell于1959年提出而得名 。

希尔排序的基本思想是:

把记录按步长 gap 分组 , 对每组记录采用直接插入排序方法进行排序 。

推荐阅读