#include <iostream>
#include <vector>
using namespace std;
void swap(int & a,int & b)
{
a=a+b;
b=a-b;
a=a-b;
}
void print(vector<int> & v)
{
vector<int>::iterator pos;
for(pos = v.begin();pos!=v.end();pos++)
cout<<*pos<<" ";
cout<<endl;
}
vector<int> & shellSort(vector<int> & v)
{
int n=v.size();
for(auto dk =n/2;dk>0;dk=dk/2)
for(auto i=dk;i<n;i++)
{
auto j=i-dk;
int temp =v[i] ;
while(j>=0&&v[j]>temp)
{
v[j+dk] =v[j];
j-=dk;
}
v[j+dk] =temp;
}
return v;
}
void main()
{
const int n=100;
vector<int> v;
v.reserve(n);
for(int i =0;i<n;i++)
v.push_back(rand()%100);
print(v);
print(shellSort(v));
system("pause");
}
希爾排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.