package com.sort;
public class ShellSort {
static void shellsort(int a[], int n)
{
int i, j, gap;
for (gap = n / 2; gap > 0; gap /= 2) //步长
for (i = 0; i < gap; i++){ //直接插入排序
for (j = i + gap; j < n; j += gap) {
int temp = a[j];
int k = j - gap;
while (k >= 0 && a[k] > temp)
{
a[k + gap] = a[k];
k -= gap;
}
a[k + gap] = temp;
}
}
}
public static void main(String[] args) {
int[] a = new int[] { 4, 3, -6, 5, 4, 3, 2, 1 };
shellsort(a, a.length);
for(int array:a){
System.out.println(array);
}
}
}
希尔排序
最新推荐文章于 2024-06-04 00:42:18 发布
本文介绍了一种改进的插入排序算法——希尔排序,并通过Java代码实现了一个具体的示例。希尔排序通过引入步长概念来减少比较次数,提高了排序效率。

18万+

被折叠的 条评论
为什么被折叠?



