c++ shell_sort()的用法在 C++ 中,Shell Sort(希尔排序)是一种插入排序的改进算法,通过对间隔逐渐减小的一系列子数组进行排序,最终达到对整个数组进行排序的效果。下面是一个简单的 C++ 实现示例:#include <iostream>
#include <vector>
void shellSort(std::vector<int>& arr) {
int n = arr.size();
// 初始的间隔(gap)
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() {
std::vector<int> arr = {12, 34, 54, 2, 3};
std::cout << "Original array: ";
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
shellSort(arr);
std::cout << "Sorted array: ";
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
shell代码}
上述代码中,shellSort 函数接受一个整数向量并对其进行希尔排序。在 main 函数中,我们创建了一个整数向量并输出了原始和排序后的数组。
希尔排序的核心是选择一个初始的间隔(gap),通过对每个间隔进行插入排序,然后逐渐减小间隔,直至间隔为 1,最终完成整个数组的排序。这种排序算法的时间复杂度取决于间隔序列的选择。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论