04_Shell排序

来源:互联网 发布:mac怎么给iphone换铃声 编辑:程序博客网 时间:2024/06/10 19:17
#include <iostream>#include <vector>using namespace std;template<typename T>void shellSort(vector<T> &a) {int gap = a.size()/3 +1 ;  //分组步长while (1 <= gap) {// 把距离为 gap 的元素编为一个组,扫描所有组for (int i = gap; i < a.size(); i++) {int j = 0;int temp = a[i];// 对距离为 gap 的元素组进行插入排序for (j = i - gap; j >= 0 && temp < a[j]; j = j - gap) {a[j + gap] = a[j];   //符合条件的元素后移动}a[j + gap] = temp;}//System.out.format("gap = %d:\t", gap);//printAll(list);gap = gap/2; // 减小增量}}

原创粉丝点击