标签:
对于一个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