希尔排序的图解展示与实现

什么是希尔排序

对整个数组进行预排序,即分组排序:按间距为gap分为一组,分组进行插入排序。

预排序的作用与特点

大的数更快地到后面,小的数更快地到前面;

gap越大,跳得越快,排完接近有序慢;

gap越小,跳得越慢,排完接近有序快。

图解希尔排序

代码实现

#include <stdio.h>
#include "ShellSort.h"//希尔排序typedef int ShSoDataType;void ShellSort(ShSoDataType* a, int n)
{//gap的值依次为,n/2, n/4, n/8, ......,2for (int gap = n / 2; gap > 1; gap /= 2){//间隔为gap的第i组进行插入排序//第i组:i, i + gap, i + 2gap,...... ,j(j = i + N * gap)// j再加gap就过nfor (int i = 0; i < n; ++i){//找第i组的最后一个元素的下标int j = i;while (j < n - gap)j += gap;for (int k = i; k <= j; k += gap){int end = k;int tmp = a[end];while (end > i){if (a[end - gap] > tmp){a[end] = a[end - gap];end -= gap;}else break;}a[end] = tmp;}}}
}void PrintfArr(int* a, int n)
{for (int i = 0; i < n; ++i)printf(" %d ", a[i]);printf("\n");
}int main()
{int arr[] = { 3, 3, 2, 4, 1, 2, 3, 7, 1, 2 };int arrsize = sizeof(arr) / sizeof(arr[0]);ShellSort(arr, arrsize);printf("ShellSort:");PrintfArr(arr, arrsize);return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

电脑浏览器显示代理服务器拒绝连接的解决办法

问题&#xff1a; 打开电脑浏览器显示代理服务器拒绝连接 解决办法&#xff1a; 1、按住winq键&#xff0c;输入代理&#xff0c;出现更改代理设置 2、将下面的自动检测设置、使用设置脚本、使用代理服务器都设置为关闭&#xff0c;刷新网页即可

人工智能 | 大语言模型应用框架介绍

简介 大语言模型的英文全称为&#xff1a;Large Language Model&#xff0c;缩写为 LLM&#xff0c;也被称为大型语言模型&#xff0c;主要指的是在大规模文本语料上训练、包含百亿级别参数的语言模型&#xff0c;它用来做自然语言相关任务的深度学习模型。 自然语言的相关任…

【数学建模国赛赛前必看】参赛作品及MD5码提交流程

国赛参赛人数非常多&#xff0c;导致了很多时候我们没有办法正常的去上传论文&#xff0c;所以国赛就会有一个MD5码的上传过程&#xff0c;MD5码上传在国赛比赛当中是非常重要的。每年几乎都有5%左右的队伍会因为MD5码上传失败导致最终的论文交稿失败。所以我们今天具体的讲一下…

qt对象析构顺序记录

说明qt对象树 对象析构顺序为&#xff1a; 本对象的析构函数栈成员对象树中自己的孩子们对象树中自己的孙子们 所以&#xff0c;千万别在孩子对象中&#xff08;qt对象树特有的这个连带析构关系&#xff09;去访问父对象的任何栈成员&#xff08;包括堆成员&#xff09;的信息…

大模型产品经理学习路线,2024最新,从零基础入门到精通,非常详细收藏我这一篇

随着人工智能技术的发展&#xff0c;尤其是大模型&#xff08;Large Model&#xff09;的兴起&#xff0c;越来越多的企业开始重视这一领域的投入。作为大模型产品经理&#xff0c;你需要具备一系列跨学科的知识和技能&#xff0c;以便有效地推动产品的开发、优化和市场化。以下…

Unity | 内存优化之资源冗余问题

目录 一、资源冗余 1.主动打包和被动打包 2.依赖资源处理 &#xff08;1&#xff09;分别制作AB包&#xff0c;会造成冗余 &#xff08;2&#xff09;资源冗余解决办法&#xff1a; &#xff08;2.1&#xff09;先主动打依赖资源AB包 &#xff08;2.2&#xff09;将两个…

智能分拣投递机器人

产品介绍 自研智能分拣投递机器人&#xff0c;专注于物流行业“NC小件”的分拣与投递&#xff0c;机器人运行稳定、分拣效率高&#xff0c;搭配智能分拣投递系统单台机器人最大作业效率可达400件/H&#xff0c;投递效率相较于传统“小黄人“提升了30%-50%&#xff0c;可替代“…

机器学习之监督学习(一)线性回归、多项式回归、算法优化[巨详细笔记]

机器学习之监督学习&#xff08;一&#xff09;线性回归、多项式回归、算法优化 1.监督学习定义2.监督学习分类2.1回归 regression2.2 分类 classification 3.线性回归 linear regression3.1 单特征线性回归模块一&#xff1a;梯度下降 3.2 多特征线性回归模块二&#xff1a;正…

代码审计总结

代码审计总结 概述 一、代码审计 1.1什么是代码审计&#xff1f; 1.2为什么要执行代码审核&#xff1f; 1.3代码审计的好处 二、代码审计流程 2.1代码检查方法 2.2代码检查项目 2.3编码规范 2.4代码检查规范 2.5缺陷检查表 2.6代码审计复查 2.7代码审计结果总结 三…

Qt25模型-QAbstractTableModel

模型-QAbstractTableModel 知识点modelexmodelex.hmodelex.cpp main.cpp运行图 知识点 //虚函数声明virtual int rowCount(const QModelIndex& parent QModelIndex())const;virtual int columnCount(const QModelIndex& parent QModelIndex())const;QVariant data(cons…

linux之网络子系统-MAC帧、数据报、段 的头部信息

一、MAC帧 格式 MAC帧是属于链路层&#xff0c;网卡发送数据的格式。 MAC帧主要有两种格式&#xff0c;一种是以太网V2标准&#xff0c;一种是IEEE 802.3&#xff0c;常用的是前者。 DMAC&#xff08;Destination MAC&#xff09;是目的MAC地址。DMAC字段长度为6个字节&#…

代码随想录算法训练营_day34

题目信息 62. 不同路径 题目链接: https://leetcode.cn/problems/unique-paths/description/题目描述: 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角…

STM32G474之TIM1更新中断

STM32G474之TIM1能产生如下的中断&#xff1a; 1、捕获比较1个事件&#xff08;Capture compare 1 event&#xff09; 用来获取“捕获输入脉冲的时间”&#xff0c;其次用来输出“比较输出波形”&#xff1b; 2、捕获比较2个事件&#xff08;Capture compare 2 event&#x…

opencv实战项目十九:透射变换倾斜二维码校正

文章目录 前言一、实现方法二、实现代码三&#xff0c;效果 前言 随着科技的飞速发展&#xff0c;二维码作为一种信息载体&#xff0c;已经广泛应用于我们的日常生活中。无论是支付、身份验证还是信息传播&#xff0c;二维码都发挥着不可替代的作用。然而&#xff0c;在实际应…

TeamTalk消息服务器(群组相关)

具体的流程如下介绍&#xff0c;后续需要着重研究数据库相关表的结构设计。 群组信令和协议设计 enum GroupCmdID {CID_GROUP_NORMAL_LIST_REQUEST 1025,CID_GROUP_NORMAL_LIST_RESPONSE 1026,CID_GROUP_INFO_REQUEST 1027,CID_GROUP_INFO_RESPONSE 1028,// ...... 暂时省…

【Python】一文详细向您介绍 bisect_left 函数

【Python】一文详细向您介绍 bisect_left 函数 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#x…

项目管理:项目经理如何才能做好时间管理?

在项目管理中&#xff0c;时间管理是至关重要的环节。作为项目经理&#xff0c;有效的时间管理不仅关乎个人工作效率&#xff0c;更直接影响到项目的整体进度、成本控制和质量保证。 以下是一些建议&#xff0c;帮助项目经理更好地进行时间管理&#xff1a; 一、明确项目目标…

做Ozon的挣钱逻辑,选择高客单高利润的4点原因

以下是选择高客单高利润产品在 Ozon 上销售的四点原因&#xff1a; 一、利润空间更可观 高客单价产品单个利润高&#xff1a;比如销售一件高客单价的高端电子产品&#xff0c;其利润可能是低客单价产品的数倍甚至更多。假设一件低客单价的普通日用品利润为 5 元&#xff0c;而…

2024年9月7日(星期六)骑行滑草场

2024年9月7日 (星期六) 骑行滑草场&#xff0c;早8:30到9:00&#xff0c; 郊野公园西门集合&#xff0c;9:00准时出发【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:郊野公园西门集合 &#xff0c;家住东&#xff0c;南&#xff0c;北的骑友在…

护眼灯真的可以保护眼睛吗?曝光劣质护眼台灯常见的三个特征

护眼灯真的可以保护眼睛吗&#xff1f;随着时代的发展&#xff0c;我们注意到越来越多的孩子开始佩戴眼镜。这一趋势引起了许多细心家长的关注&#xff0c;他们认识到这不仅是个别情况&#xff0c;而是现代生活方式和环境对孩子视力健康的挑战。自然而然地&#xff0c;“儿童是…