博客
关于我
C++shell sort希尔排序的实现算法之一(附完整源码)
阅读量:255 次
发布时间:2019-03-01

本文共 1359 字,大约阅读时间需要 4 分钟。

C++希尔排序实现算法

C++希尔排序实现算法完整源码

了解希尔排序的基本原理及其在C++中的实现方法

希尔排序的基本原理

  • 希尔排序是一种优化的选择排序算法
  • 其核心思想是将数组分成若干个"轮"进行排序
  • 每一轮中选择一个"距离"进行排序
  • 随着轮数的增加,距离逐渐减小,最终达到1
  • 这种方法可以有效减少每次选择最小值的时间复杂度
#include
using namespace std;
void shellSort(int array[], int size)
{
int n = size;
int k = 1; // 初始化分组距离
while (k < n)
{
// 将数组分成k个组
for (int i = 0; i < n; i++)
{
int temp = array[i];
int j;
for (j = i - k; j >= 0 && array[j] > temp; j--)
{
array[j] = temp;
}
array[j] = temp;
}
// 调整数组以进行下一轮排序
k *= 2;
}
// 排序完成
cout << "希尔排序完成!" << endl;
}
int main()
{
int size = 10;
int array[size] = {65, 45, 13, 18, 97, 1, 77, 52, 26, 83};
cout << "排序前的数组:";
for (int i = 0; i < size; i++)
cout << array[i] << " ";
cout << endl;
shellSort(array, size);
cout << "排序后的数组:";
for (int i = 0; i < size; i++)
cout << array[i] << " ";
cout << endl;
return 0;
}

转载地址:http://yfsx.baihongyu.com/

你可能感兴趣的文章
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
nodejs npm常用命令
查看>>
nodejs npm常用命令
查看>>
Nodejs process.nextTick() 使用详解
查看>>
nodejs 创建HTTP服务器详解
查看>>
nodejs 发起 GET 请求示例和 POST 请求示例
查看>>
NodeJS 导入导出模块的方法( 代码演示 )
查看>>
nodejs 开发websocket 笔记
查看>>
nodejs 的 Buffer 详解
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>