当前位置: 首页 > news >正文

数据结构-希尔排序

每次对5个间隔的元素进行插入排序,然后间隔依次递减,直到间隔为1

互质:相邻的两个元素没有公因子

这个例子只有间隔1起来作用

#include<iostream>
using namespace std;
typedef int ElmentType;
void shell_Sort(ElmentType A[], int N) {/*希尔排序-用Sedgewick增量*/int Si, D, P, i;ElmentType Tmp;/*这里只列出一小部分增量 */int Sedgewick[] = { 929,505,209,109,41,19,5,1,0 };for (Si = 0; Sedgewick[Si] >= N; Si++);/*初始化的增量Sedgewick[Si]不能超过待排序列长度*/for(D=Sedgewick[Si];D>0;D=Sedgewick[++Si])for (P = D; P < N; P++) {//插入排序Tmp = A[P];for (i = P; i >= D && A[i - D] > Tmp; i -= D)A[i] = A[i - D];A[i] = Tmp;}}
int main()
{ElmentType A[10] = { 1,2,0,9,3,5,4,7,6,9 };shell_Sort(A, 10);for (int i = 0; i < 10; i++)cout << A[i] << " ";cout << endl;return 0;
}

http://www.lryc.cn/news/500191.html

相关文章:

  • Spire.doc 合并word,复制word
  • 【Spring项目】表白墙,留言板项目的实现
  • 分布式事务-nacos/seata在windows环境下部署及开发
  • 分布式微服务架构下的密码安全性方案
  • 基于pytorch的深度学习基础4——损失函数和优化器
  • 网络安全信息收集(总结)更新
  • web斗地主游戏实现指北
  • SpringMVC其他扩展
  • 【Linux】网络服务
  • 工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法
  • IDL学习笔记(五)MODIS数据(Grid)
  • JavaScript语言介绍
  • Lua使用点号和冒号的区别
  • LLM - 开源视觉多模态 LLaVA-CoT(o1) 深度推理模型 测试与源码 教程
  • Ansible的yum和saltstack的哪个功能相似
  • paimon0.9记录
  • Java 中 List 接口的学习笔记
  • 【原生js案例】webApp实现鼠标移入移出相册放大缩小动画
  • LVGL9 定时器模块
  • Qt学习笔记第51到60讲
  • 网页设计--axios作业
  • SpringBoot 整合 Avro 与 Kafka 详解
  • 若依 ruoyi VUE el-select 直接获取 选择option 的 label和value
  • 大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
  • 修改MySQL存储路径
  • Git常用的命令【提交与回退】
  • 详解:HTTP/HTTPS协议
  • 0.96寸OLED---STM32
  • 保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码
  • 常用Vim操作