用cpp写一段希尔排序
时间: 2023-11-22 10:58:58 浏览: 64
希尔排序.cpp
4星 · 用户满意度95%
以下是使用C++编写的希尔排序代码:
```cpp
#include <iostream>
using namespace std;
void shellSort(int arr[], int n) {
for (int gap = n/2; gap > 0; gap /= 2) {
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
int main() {
int arr[] = {5, 9, 1, 3, 4, 6, 6, 3, 2};
int n = sizeof(arr)/sizeof(arr[0]);
shellSort(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
在这个实现中,我们使用了希尔排序的标准实现,其中我们首先确定了一个初始间隔(gap),然后在每一次迭代中将gap减半,直到gap为1为止。在每个迭代中,我们将数组分成gap个子序列,并对每个子序列进行插入排序,直到整个数组被排序为止。
阅读全文