希尔排序

网友投稿 265 2022-08-28

希尔排序

#includeusing namespace std;templatevoid shellSort(T arr[], int n){ int h = 1; while( h < n/3 ) h = 3 * h + 1; // 计算 increment sequence: 1, 4, 13, 40, 121, 364, 1093... while( h >= 1 ){ // h-sort the array for( int i = h ; i < n ; i ++ ){ // 对 arr[i], arr[i-h], arr[i-2*h], arr[i-3*h]... 使用插入排序 T e = arr[i]; int j; for( j = i ; j >= h && e < arr[j-h] ; j -= h ) arr[j] = arr[j-h]; arr[j] = e; } h /= 3; }}int main(){ int arr[] = { 6, 4, 2, 8, 1, 3, 9, 5, 4, 7 };; shellSort(arr, 10); for (int i = 0; i < 10; i++) cout << arr[i];}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:字符串分隔
下一篇:这一年,新消费品牌想出圈离不开这6种玩法!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~