排序算法-希尔排序

来源:互联网 发布:面包板入门单片机 编辑:程序博客网 时间:2024/06/02 11:47

希尔排序实际上是插入排序的优化,根据分组从而实现插入排序的最优

public void shellsort1(int a[], int n){    int grap, i, j, temp;    // 每次为原来的一半    for (grap = n/2; grap > 0; grap /= 2){        for (i = grap; i < n; i++){            for (j = i - grap; j >= 0 && a[j]>a[j+grap]; j -=grap){                temp = a[j];                a[j] = a[j+grap];                a[j+grap] = temp;            }        }    }}public void sehllsort2(int[] a, int n, int[] d, int numOFD){    int i, j, k, m, span, temp;    for (m = 0; m < numOFD; m ++){        span = d[m];        for (k = 0; k < span; k++){            for (i = k; i<n-span; i = i+span){                temp = a[i+span];                j = i;                while(j>-1 && temp < a[j]){                    a[j+span] = a[j];                    j = j-span;                }                a[j+span] = temp;            }        }    }}

原创粉丝点击