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

排序之希尔排序(图解)

为什么希尔排序会出来,主要是为了弥补插入排序的缺点,插入排序它的最好的时间复杂的为O(n),但如果一开始是一个逆序出来让我们排,那时间复杂度就是O(n^2)了,因为每次排,都会移动所经过的数。

希尔排序其实也是插入排序的变形,就是在做最后一部插入排序之前,做一个预排序,使它先接近有序,然后再排。

 

void shellSort(int* a, int size)
{
	int gap = size;
	while (gap > 1)
	{
		gap = gap / 3 + 1;
		for (int i = 0; i < size - gap; i++)
		{
			int end = i;
			int x = a[end + gap];
			while (end >= 0)
			{
				if (a[end] > x)
				{
					a[end + gap] = a[end];
					end = end - gap;
				}
				else
				{
					break;
				}
			}
			a[end + gap] = x;
		}
	}
}
void MyPrint(int* a, int sz)//打印数组
{
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");
}

 

相关文章:

  • 排序之选择排序(图解)
  • C++之默认参数详解
  • 力扣(两数相加)C语言
  • 力扣(反转二叉树)C语言
  • 力扣-平衡二叉树(C语言)
  • 力扣—对称二叉树(C语言)
  • 牛客网—二叉树遍历(C语言)
  • C++之引用详解
  • c++之模板初阶
  • C++之string源代码详解
  • 电话号码组合(力扣)
  • vim的基本用法
  • 进程的概念(详解)
  • Linux 基础知识详解
  • 命名管道的学习
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Asm.js的简单介绍
  • go语言学习初探(一)
  • IndexedDB
  • leetcode讲解--894. All Possible Full Binary Trees
  • Octave 入门
  • springboot_database项目介绍
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊聊flink的TableFactory
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 容器服务kubernetes弹性伸缩高级用法
  • 深度学习入门:10门免费线上课程推荐
  • 我的业余项目总结
  • 智能合约Solidity教程-事件和日志(一)
  • 选择阿里云数据库HBase版十大理由
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # Panda3d 碰撞检测系统介绍
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (SpringBoot)第二章:Spring创建和使用
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)重识new
  • (转载)(官方)UE4--图像编程----着色器开发
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core使用ef 6
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .net分布式压力测试工具(Beetle.DT)
  • .Net面试题4
  • @media screen 针对不同移动设备
  • [20181219]script使用小技巧.txt
  • [android] 看博客学习hashCode()和equals()
  • [Android]How to use FFmpeg to decode Android f...
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C++][基础]1_变量、常量和基本类型