Java语言实现的各种排序源代码--希尔排序

来源:互联网 发布:数据库性能指标 编辑:程序博客网 时间:2024/05/17 04:45
 

/*Shell排序:*/

package sorts;

public class ShellSort{

    public int[] Shell(int[] data) {
        for(int i=data.length/2;i>2;i/=2){
            for(int j=0;j<i;j++){
                insertSort(data,j,i);
            }
        }
        insertSort(data,0,1);
  return data;
    }

    private void insertSort(int[] data, int start, int inc) {
       
     for(int i=start+inc;i<data.length;i+=inc){
            for(int j=i;(j>=inc)&&(data[j]<data[j-inc]);j-=inc){
                swap(data,j,j-inc);
            }
        }
    }
    public  void swap(int[] data, int i, int j) {
        int temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

}

/*测试方法*/
package sorts;

public class TestSort {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        int[] a={1,4,3,2,6,7,5,8,9,0};
       /* BubbleSort bubble=new BubbleSort();
        bubble.Bubble(a);*/
       /* SelectionSort select=new SelectionSort();
        select.Select(a);*/
        ShellSort shell=new ShellSort();
        shell.Shell(a);
        for(int i=0;i<a.length;i++)
        {
         System.out.print(a[i]+" ");
        }
        System.out.println();
 }
}

原创粉丝点击