首页 > 编程语言 > 详细

插入排序) 希尔排序 (最小增量排序)

时间:2015-07-17 07:15:19      阅读:146      评论:0      收藏:0      [点我收藏+]

/**
 * (插入排序) 希尔排序 (最小增量排序)
 * @author Cinn
 *
 */
public class shellSort {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] array= {48,58,50,98,69,51,27,99,100};
        shleesort(array);
        printArray(array);
    }
    
    /**
     * 希尔排序接口
     * @param array
     */
    public static void shleesort(int[] array){
        int temp = 0;
        int d = array.length;
        while(true){
            d = d/2;
            for(int x=0;x<d;x++){
                for (int i = x+d; i < array.length; i+=d) {
                    temp = array[i];
                    int j = i-d;
                    for(;j>=0&&temp<array[j];j-=d){
                        array[j+d] = array[j];
                    }
                    array[j+d] = temp;
                }
            }
            if(d==1){
                break;
            }
        }
    }

    public static void printArray(int[] array){
        for(int i=0;i<array.length;i++){   
            System.out.println(array[i]);   
        }   
    }
}


在本次希尔排序中,因为   for(;j>=0&&temp<array[j];j-=d){写成了成for(;j>0&&temp<array[j];j-=d){,导致元素中的第一个元素始终排序不到。纠结了半天。以后要注意这些低级错误。

插入排序) 希尔排序 (最小增量排序)

原文:http://8145606.blog.51cto.com/8135606/1675461

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!