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

排序--希尔排序

希尔排序介绍

希尔排序核心思想就是:1,分组;2,直接插入排序:越有序越快
希尔排序就是多次利用直接插入排序的一个排序算法.
希尔排序的算法思想:间隔式分组,利用直接插入排序让组内有序,然后缩小分组再次排序,直到组数为1希尔排序的理论基础就是直接插入排序越有序越快;
希尔排序示意图:
在这里插入图片描述

完整代码

//一趟希尔排序,gap为组数(间隔)
static  void  Shell(int* arr, int len, int gap)
{
	int  tmp;
	int j;
	for (int i = gap; i < len; i++)
	{
		tmp = arr[i];
		for (j = i - gap; j >= 0; j -= gap)
		{
			if (arr[j] > tmp)
			{
				arr[j + gap] = arr[j];
			}
			else  
			{
				break;  
			}
		}
		arr[j + gap] = tmp;  
	}
}

void  ShellSort(int* arr, int len)  
{
	int d[] = { 5,3,1 };//分组数,最后一个一定为1  
	for (int i = 0; i < sizeof(d) / sizeof(d[0]); i++)  
	{
		Shell(arr, len, d[i]);//一趟希尔排序  
	}
}

本篇完!🍗


http://www.kler.cn/a/321584.html

相关文章:

  • 删库跑路,启动!
  • Vue3 -- 环境变量的配置【项目集成3】
  • catchadmin-webman 宝塔 部署
  • 【C++学习(37)】并发性模式:如生产者-消费者、读写锁等。 架构模式:如MVC、MVVM等。属于23 种设计模式吗? RAII 的关系?
  • 操作系统lab4-页面置换算法的模拟
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • C#入门教程
  • python 实现knn sklearn K近邻分类算法
  • 最新的iOS 18版本和Android 15版本系统分别升级了哪些功能?
  • [大语言模型] 情感认知在大型语言模型中的近期进展-2024-09-26
  • SLF4J报错log4j又报错
  • 新书推荐——《深度学习精粹与PyTorch实践》
  • 网络安全专业,在校大学生如何赚外快,实现财富自由?零基础入门到精通,收藏这一篇就够了
  • Linux下的基本指令/命令(二)
  • 面试小妙招:轻松绕过五大“坑”,展现真实自我
  • python中数据处理库,机器学习库以及自动化与爬虫
  • 设计模式-行为型模式-中介者模式
  • 【C#】DllImport的使用
  • 力扣19 删除链表的倒数第N个节点 Java版本
  • eBPF系列:开发流程
  • 【HarmonyOS】鸿蒙仿iOS线性渐变实现
  • 如何像专家一样修复任何 iPhone 上的“iPhone 已禁用”错误
  • 【Go】Go语言切片(Slice)深度剖析与应用实战
  • chsharp文件如何查找在unity中使用的 位置?
  • 【React】组件通信
  • docker windows下清理后,磁盘空间未释放原因及解决方法