八大排序算法之希尔排序

希尔排序是插入排序的进阶版本,他多次调用插入排序,在插入排序上进行了改造,使其处理无序的数据时候更快

核心思想:1.分组 2.直接插入排序:越有序越快

算法思想:

间隔式分组,利用直接插入排序让组内有序,然后缩小分组再次排序,直到组数为1,;理论基础为直接插入排序

高明之处:

我们正常分组时候是这样直接挨着分组,每3个3个分组,这样导致我们分组之后,小的数字变化不大,大的数字变化也不大,而我们希望小的数字在前面,大的数字在后面,这样可以减少我们的时间复杂度;

而我们通过这样的间隔式分组,可以实现,尽量让大数据在后面,肖书记在前面,通过5 3 1的三次分组,(注:最后一次必须是1的分组,因为我们要让所有数据有序)实现比插入排序时间复杂度低的排序

代码实现:

//一趟希尔排序
static void Shell(int* arr, int len,int gap)//gap为组数或者(间隔)
{int tmp, i, j;for (i = gap; i < len; i+=gap){tmp = arr[i];for (j = i - gap; j >= 0; j-=gap){if (arr[j] > tmp){arr[j + gap] = arr[j];}elsebreak;}arr[j + gap] = tmp;}
}void ShellSort(int* arr, int len)
{int drr[] = { 5,3,1 };for (int i = 0; i < sizeof(drr) / sizeof(drr[0]); i++){Shell(arr, len, drr[i]);}
}

特点:

希尔排序时间复杂度O(n^1.3~n^1.5),空间复杂度O(1),不稳定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289267.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows安装Odoo结合内网穿透实现公网访问本地企业管理系统

文章目录 前言1. 下载安装Odoo&#xff1a;2. 实现公网访问Odoo本地系统&#xff1a;3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件&#xff0c;是一个一站式全功能ERP及电商平台。 开源性质&#xff1a;Odoo是一个开源的ERP软件&#xff0c;这意味着企…

工业以太网无线网桥

一、功能概述 1.1设备简介 本产品是工业以太网&#xff08;Profinet、EtherNet/IP、ModbusTCP等&#xff09;转无线设备&#xff0c;成对使用&#xff08;一对一&#xff09;&#xff0c;本产品出厂前已经配对好&#xff0c;用户不需要再配对&#xff0c;即插即用。 本产品适…

【C++】从C到C++、从面向过程到面向对象(类与对象)

文章目录 C入门知识C与C的关系1. 类的引入&#xff1a;从结构体到类2. 类的声明和定义3. 类的作用域4. 类的访问限定符5. 面向对象特性之一&#xff1a;封装6. 类的实例化&#xff1a;对象7. 计算类对象的内存大小8. 成员函数中暗藏的this指针9. 类的六个默认生成的成员函数9.1…

哪个洗地机性价比比较高?这几款品牌值得入手

洗地机是现在越来越受欢迎的清洁工具&#xff0c;功能非常齐全。它就像是吸尘器和电动拖把的结合体&#xff0c;对于每天要做家务的人来说&#xff0c;可以一次性解决多种类型的垃圾&#xff0c;省时省心省力。可是面对种类繁杂的洗地机市场&#xff0c;我们该如何选择呢&#…

如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问

前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问&#xff0c;希望大家能觉得实用&#xff01; 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&am…

python_1

要求&#xff1a; 代码&#xff1a; # 先将分钟数转化成年数&#xff0c;再将余数做为天数 minute float(input("请输入分钟数&#xff1a;")) year_1 (minute / 60 / 24) // 365 day_1 (minute / 60 / 24) % 365 now f"{minute}分钟{year_1}年{day_1}天&q…

值得收藏!2024年智能交通领域顶级会议投稿信息汇总

智能交通系统&#xff08;Intelligent Transportation Systems, ITS&#xff09;是应用现代信息技术、通信技术、数据处理技术、控制技术和传感技术于交通管理系统中&#xff0c;旨在提高道路安全性、提升交通效率、改善交通环境、增加驾驶舒适度和效率的综合智能化系统。它通过…

【C++初阶】之类和对象(中)

【C初阶】之类和对象&#xff08;中&#xff09; ✍ 类的六个默认成员函数✍ 构造函数&#x1f3c4; 为什么需要构造函数&#x1f3c4; 默认构造函数&#x1f3c4; 为什么编译器能自动调用默认构造函数&#x1f3c4; 自己写的构造函数&#x1f3c4; 构造函数的特性 ✍ 拷贝构造…

淘宝商品评论抓取技术大揭秘:轻松获取用户评价,助力电商决策!

获取淘宝商品评论接口的技术实现涉及多个步骤&#xff0c;包括获取商品ID、构建请求URL、发送HTTP请求以及解析响应数据。以下是一个基本的指南和示例代码&#xff0c;帮助你了解如何实现这一功能。 步骤一&#xff1a;获取商品ID 首先&#xff0c;你需要知道你想要获取评论的…

fuzzywuzzy,一个好用的 Python 库!

目录 前言 安装 基本功能 1. 字符串相似度比较 2. 模糊匹配与排序 实际应用场景 1. 数据清洗 2. 文本匹配与搜索 3. 搜索引擎优化 总结 前言 大家好&#xff0c;今天为大家分享一个好用的 Python 库 - fuzzywuzzy Github地址&#xff1a;https://github.com/seatgeek/fu…

Stable Diffusion WebUI 图生图(img2img):图生图/涂鸦绘制/局部重绘/有色蒙版/上传蒙版/批量处理/反推提示词

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 本篇文章我们介绍 Stable Diffusion WebUI 的图生图功能&#xff0c;主要包括&#xff1a;图生图、图生图&#xff08…

Spring-IoC-属性注入的注解实现

1、创建对象的注解 Component 用于声明Bean对象的注解&#xff0c;在类上添加该注解后&#xff0c;表示将该类创建对象的权限交给Spring容器。可以直接将这些类直接创建&#xff0c;使用的时候可以直接用。 注解的value属性用于指定bean的id值&#xff0c;value可以省略&…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa&#xff0c;是GPI锚定的细胞表面蛋白Ly-6超家族的成员&#xff0c;在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞&#xff08;包括单核细胞、巨噬细胞、粒…

在点集的新知识面前百年集论不堪一击

黄小宁 与x∈R相异&#xff08;等&#xff09;的实数均可表为yxδ&#xff08;增量δ可0也可≠0&#xff09;&#xff0c;因各实数的绝对值都可是表示长度的数故各实数都可是数轴上点的坐标&#xff0c;于是x∈R变换为实数yxδ的几何意义可是&#xff1a;一维空间“管道”g内R…

产品推荐 | 基于 Xilinx ZYNQ UltraScale+的FACE-ZUSSD-C 多核SOC设计开发平台

01、产品概述 FACE-ZUSSD-C多核SOC设计开发平台是FACE系列的新产品。FACE-ZUSSD-C搭载有16nm工艺的ZYNQ UltraScale系列主器件ZU19EG。该主器件具有丰富的FPGA可编程逻辑资源&#xff0c;同时其内嵌有四核ARM CortexA53&#xff0c;双核ARM CortexR5以及Mali400 GPU。 平台板…

常用的苹果应用商店上架工具推荐

摘要 移动应用app上架是开发者关注的重要环节&#xff0c;但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作&#xff0c;各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用&#xff0c;最终指出合理使用工具的重要性。 引言 移动应…

构建一个基础的大型语言模型(LLM)应用程序

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

通用指南-营销和设计中的增强现实(AR)

原文作者&#xff1a;Superside 翻译&#xff1a;数字化营销工兵 --- 经典万字长文&#xff0c;权威解读&#xff0c;分享经典&#xff0c;预计阅读完需要30分钟&#xff0c;建议收藏&#xff01; 目录 一、引言 为什么要尝试AR AR到底是什么&#xff1f;营销人员和创意人…

镭速如何适配国产数据库(达梦)进行高效数据管理与共享

在当今企业运营的背景下&#xff0c;数据的管理和共享显得尤为关键。在这个过程中&#xff0c;挑选一个合适的数据库系统是至关重要的。国产的达梦数据库因其在多个关键领域&#xff0c;如金融、能源、航空和通信等的成功运用&#xff0c;已经成为众多企业的首选解决方案。 作为…

【Git篇】复习git

文章目录 &#x1f354;什么是git⭐git和svn的区别 &#x1f354;搭建本地仓库&#x1f354;克隆远程仓库&#x1f6f8;git常用命令 &#x1f354;什么是git Git是一种分布式版本控制系统&#xff0c;它可以追踪文件的变化、协调多人在同一个项目上的工作、恢复文件的旧版本等…