Java八大排序算法之希尔排序

来源:互联网 发布:溢价域名 编辑:程序博客网 时间:2024/05/17 07:25

插入排序之希尔排序,直接贴一个简单的demo。

package com.ysk.charu;public class xierpaixu {    public void shellsort() {        int a[] = { 49, 38, 65, 97, 76, 2, 1, 5, 3, 9 };        double d1 = a.length;        int temp = 0;        while (true) {            d1 = Math.ceil(d1 / 10);            int d = (int) d1;            for (int x = 0; x < d; x++) {                System.out.println("============");                for (int i = x + d; i < a.length; i += d) {                    System.out.println("i:" + i + " " + "d:" + d);                    int j = i - d;                    temp = a[i];                    System.out.println("temp:  " + temp + " a[" + i + "] " + a[i]);                    for (; j >= 0 && temp < a[j]; j -= d) {                        System.out.println("a[" + j + " + " + d + "]+" + "的值换为" + "a[" + j + "]");                        a[j + d] = a[j];                    }                    a[j + d] = temp;                }            }            if (d == 1) {                break;            }        }        for (int i = 0; i < a.length; i++) {            System.out.print(a[i] + " ");        }    }}