@ -0,0 +1,35 @@
//希尔排序
void shellSort(vector<int>v)
{
cout << "希尔排序,升序:" << endl;
int gap = v.size();
while (gap != 1)
gap = gap / 3 + 1;
for (int i = gap; i <v.size (); ++i)
int temp = v[i];
int j = i - gap;
for (; j >= 0; j -= gap)
if (v[j] > temp)
v[j + gap] = v[j];
}
else
break;
v[j + gap] = temp;
printVector(v);
//复杂度说明:时间复杂度为O(n^1.5)