码迷,mamicode.com
首页 > 编程语言 > 详细

希尔排序

时间:2016-05-16 20:01:07      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

对于一个int数组,请编写一个希尔排序算法,对数组元素排序。

给定一个int数组A及数组的大小n,请返回排序后的数组。保证元素小于等于2000。

测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]

代码:

class ShellSort {
public:
    int* shellSort(int* A, int n) {
        for(int pace=n/2; pace>0; pace/=2){   //步长变换
            for(int i=pace; i<n; i+=pace){
                for(int j=i; j-pace>=0; j-=pace){
                    if(A[j]<A[j-pace]){
                        int tmp=A[j];
                        A[j]=A[j-pace];
                        A[j-pace]=tmp;
                    }
                }
            }
        }
        return A;
    }
};

 

希尔排序

标签:

原文地址:http://www.cnblogs.com/claremore/p/5499074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!