diff --git a/希尔排序 b/希尔排序 new file mode 100644 index 0000000..3052f16 --- /dev/null +++ b/希尔排序 @@ -0,0 +1,35 @@ +//希尔排序 +void shellSort(vectorv) +{ + cout << "希尔排序,升序:" << endl; + + int gap = v.size(); + + while (gap != 1) + { + gap = gap / 3 + 1; + + for (int i = gap; i = 0; j -= gap) + { + if (v[j] > temp) + { + v[j + gap] = v[j]; + } + else + { + break; + } + } + + v[j + gap] = temp; + } + } + + printVector(v); +} +//复杂度说明:时间复杂度为O(n^1.5) \ No newline at end of file