希尔排序算法
package com.cn.gao; public class ShellSort { public static final int SIZE=10; //希尔排序算法 public static void shellSort(int[] a){ int d,i,j,temp,k=0;; for(d=a.length/2;d>=1;d/=2){ for(i=d;i<a.length;i++){ temp=a[i]; j=i-d; while(j>=0&&a[j]>temp){ a[j+d]=a[j]; j-=d; } a[j+d]=temp; } k++; //记录步数 System.out.print("第"+k+"步的排序结果为:"); for(int m=0;m<a.length;m++){ System.out.print(" "+a[m]); } System.out.println(); } } public static void main(String[] args){ int[] a = new int[SIZE]; //为数组元素赋值 for(int i=0;i<a.length;i++){ a[i] = (int) (100 + Math.random()*100); } //输出排序前的数组元素 System.out.println("排序前的数组为:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } System.out.print("\n"); //对数组排序 shellSort(a); //输出排序后的数组元素 System.out.println("排序后的数组为:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } System.out.print("\n"); } }