#include <vector>
#include <iostream>
using namespace std;
template <typename _Tp>
void shellSort(vector<_Tp> &a) {
int ht = a.size()/2;
int p,j;
for (; ht > 0; ht = ht/2) {
for (p=1; p < a.size(); ++p) {
_Tp tmp = a[p];
for (j=p; j >= ht && tmp < a[j-ht]; j = j-ht)
a[j] = a[j-ht];
a[j] = tmp;
}
}
}
int main() {
vector<int> myvec;
myvec.push_back(12);
myvec.push_back(24);
myvec.push_back(46);
myvec.push_back(34);
myvec.push_back(22);
vector<int>::iterator itr;
itr = myvec.begin();
while(itr != myvec.end()) {
cout << *itr++ << endl;
}
shellSort(myvec);
itr = myvec.begin();
while(itr != myvec.end()) {
cout << *itr++ << endl;
}
return 0;
}
希尔排序的简单实现
最新推荐文章于 2025-02-27 23:21:47 发布