排序之希尔排序

来源:互联网 发布:知米背单词知乎 编辑:程序博客网 时间:2024/05/01 22:38

         上一篇,讲了快速排序,它的思想是分而治之的思想,今天讲的希尔排序与直接插入排序有点相似,但是基于这样的一种思想,把若干个数据组成一组,这些数据不必相连,组内排好序,然后不断缩小步长,达到所有的数据都排好序。

       public class ShellSort{
            public static void main(String args[]){
                int array[]=new int[]{10,9,8,7,6,5,4,3,2,1};
                int i,j;
                int temp;
               System.out.println("在排序之前的输出:");
               for(i=0;i<array.length;i++){
                     System.out.print(array[i]+" ");
               }
        
             //初始化步长
            int gap=array.length/2;
           while(gap>0){
                 for(i=gap;i<array.length;i++){
                     temp=array[i];
                    for(j=i-gap;j>=0;j=j-gap){
                    if(temp<array[j]){
                         array[j+gap]=array[j];
                     }
                   else{
                          break;
                    }
              }
              array[j+gap]=temp;
            }
            / /不断缩小步长
           gap=gap/2;
}
          System.out.println("\n排序之后的输出:");

for(i=0;i<array.length;i++){

  System.out.print(array[i]+" ");

}

}
}

原创粉丝点击