希尔排序

简介: 希尔排序
public class ShellSort 
{
  public static void main(String args[])
  {
    int a[] = {10,5,10,2};
    System.out.println("this is shellsort:");
    ShellSort(a);
    output(a);
  }
  public static void output(int a[])//输出
  {
    int i;
    for(i = 0; i < a.length; i++)
    {
      System.out.print(a[i] + " ");
    }
    System.out.println();
  }
  public static void ShellSort(int a[])//希尔排序
  {
    int i,j,gap;
    for(gap = a.length / 2; gap >= 1; gap = gap / 2)//步长
    {
      for(i = gap; i < a.length; i++)
      {
        int temp = a[i];//保存a[i]的值
        j = i - gap;//从i = 0开始
        while(j >= 0 && temp < a[j])//直接插入排序
        {
          a[j + gap] = a[j];
          j -= gap;
        }
        a[j + gap] = temp;
      }
    }
  }
}
相关文章
|
1月前
|
搜索推荐
希尔排序
希尔排序。
19 6
希尔排序是什么
希尔排序:外套一层间隔逐步缩小的循环的插入排序
|
7月前
直接插入排序与希尔排序
直接插入排序与希尔排序
48 2
|
7月前
|
搜索推荐 Shell C++
C++希尔排序的实现
C++希尔排序的实现
|
7月前
|
存储 搜索推荐 算法
插入排序(一)——直接插入排序与希尔排序
插入排序(一)——直接插入排序与希尔排序
53 1
|
7月前
|
搜索推荐
直接插入排序和希尔排序
直接插入排序和希尔排序
74 0
|
算法 搜索推荐 Shell
18 希尔排序
18 希尔排序
33 0
插入排序与希尔排序
插入排序与希尔排序
54 0
|
搜索推荐 测试技术 C++
【插入排序】直接插入排序 与 希尔排序
【插入排序】直接插入排序 与 希尔排序