数据结构之——希尔排序

来源:互联网 发布:渔趣网淘宝 编辑:程序博客网 时间:2024/06/15 22:42

希尔排序

package Sort;import java.util.*;public class ShellSort { public int[] shellSort(int[] A, int n) {        // write code here        int gap = n/2;        while(gap>0){            for(int i=gap;i<n;i++){                while(i-gap>=0 && A[i]<A[i-gap] ){  //这个地方需要注意,每次的元素都要依次向前比较,直到数组最首端                    swap(A,i,i-gap);                    i -= gap;                }            }            gap =gap/2;        }        return A;    }    private void swap(int[] a, int i,int j){        if(i==j)            return;        a[i] = a[i] + a[j];        a[j] = a[i] - a[j];        a[i] = a[i] - a[j];    }         public static void main(String[] args) {ShellSort ss = new ShellSort();int[] a  ={32,103,24,88,95,70,97,15,102,6,79,46,51,37,93,108,9,58,53,58,79,36,58,91,78,58,61,81};a = ss.shellSort(a, 28);System.out.println(Arrays.toString(a));}}


0 0