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

排序——希尔排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、希尔排序
  • 二、希尔排序动态图
  • 三、希尔排序程序代码
  • 四、希尔排序习题
  • 总结


前言

  1. 希尔排序定义
  2. 希尔排序算法分析
  3. 希尔排序程序代码
  4. 希尔排序练习题

一、希尔排序

1.定义:先将待排序表分为若干个相同长度的子表(最后一个可不计),分别进行直接插入排序,当基本有序时,再对整体做一次直接插入排序,步骤:
(1)取一个步长d1 ,分为d1组,所有距离为d1倍数的放在一组
(2)各组中进行插入排序
(3)然后取步长d2,重复上述,直到取到步长为1,即所有记录已放在同一组中,再进行直接插入排序
(4)一般的,取d1=n/2 ,di+1=di/2向下取整,并且最后一个为1

二、希尔排序动态图

在这里插入图片描述

三、希尔排序程序代码

void ShellInsert(elementtype r[n+1],int k){dh=k;while(dh>=1){for(i=dh+1li<=n;i++){r[0]=r[I];j=i-dh;while(j>0&&r[j]>r[0]){r[j+dh]=r[j];j=j-dh;}r[j+dh]=r[0];}dh=dh/2;}
}

2.效率:空间为O(1),时间效率最坏情况下 O(n2)
3.稳定性:相同关键字会被划分为不同子表中,所以为不稳定算法
4.适用性:仅适用于顺序表

四、希尔排序习题

例题:
9、1、2、5、7、4、8、6、3、5
第一趟排序:4、1、2、3、5、9、8、6、5、7
第二趟排序:2、1、4、3、5、6、5、7、8、9
第三趟排序:1、2、3、4、5、5、6、7、8、9


总结

  1. 希尔排序定义
  2. 希尔排序算法分析
  3. 希尔排序程序代码
  4. 希尔排序练习题

相关文章:

排序——希尔排序

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、希尔排序二、希尔排序动态图三、希尔排序程序代码四、希尔排序习题总结 前言 希尔排序定义希尔排序算法分析希尔排序程序代码希尔排序练习题 一、希尔排序…...

为什么文件夹里的文件看不到?了解原因及应对措施

无论是在个人电脑中还是在其他存储介质上&#xff0c;我们经常会遇到文件夹中的文件突然不可见的情况。这种问题给我们的工作和生活带来了不便&#xff0c;并可能导致数据丢失。本文将分析文件夹中文件看不见的原因&#xff0c;并介绍相应的解决方法&#xff0c;以帮助大家更好…...

KVM嵌套虚拟化实现

KVM嵌套虚拟化实现 理论 Libvirt主要支持三种 CPU mode host-passthrough: libvirt 令 KVM 把宿主机的 CPU 指令集全部透传给虚拟机。因此虚拟机能够最大限度的使用宿主机 CPU 指令集&#xff0c;故性能是最好的。但是在热迁移时&#xff0c;它要求目的节点的 CPU 和源节点的…...

驱动开发,IO模型,信号驱动IO实现过程

1.信号驱动IO框架图 分析&#xff1a; 信号驱动IO是一种异步IO方式。linux预留了一个信号SIGIO用于进行信号驱动IO。进程主程序注册一个SIGIO信号的信号处理函数&#xff0c;当硬件数据准备就绪后会发起一个硬件中断&#xff0c;在中断的处理函数中向当前进程发送一个SIGIO信号…...

左神高级进阶班3(TreeMap顺序表记录线性数据的使用, 滑动窗口的使用,前缀和记录结构, 可能性的舍弃)

目录 【案例1】 【题目描述】 【思路解析】 【代码实现】 【案例2】 【题目描述】 【思路解析】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【代码实现】 【案例4】 【题目描述】 【思路解析】 【代码实现】 【案例1】 【题目描述】 【思路解析】 这里…...

Linux线程

1.进程是资源管理的最小单位&#xff0c;线程是程序执行的最小单位。 2.每个进程有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程&#xff0c;它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路径&#xff0c;每个线程共享其所附属进程的所有资源&#xff0c;包括…...

C++ 太卷,转 Java?

最近看到知乎、牛客等论坛上关于 C 很多帖子&#xff0c;比如&#xff1a; 2023年大量劝入C 2023年还建议走C方向吗&#xff1f; 看了一圈&#xff0c;基本上都是说 C 这个领域唯一共同点就是都使用 C 语言&#xff0c;其它几乎没有相关性。 的确是这样&#xff0c;比如量化交…...

《Java并发编程实战》第2章-线程安全性

0.概念理解 对象状态&#xff1a;存储在状态变量&#xff08;例如实例或静态域&#xff09;中的数据&#xff1b; 线程安全性&#xff1a;当多个线程访问某个类时&#xff0c;这个类始终都能表现出正确的行为&#xff0c;那么就称这个类是线程安全的&#xff1b; 竞态条件&…...

二蛋赠书三期:《C#入门经典(第9版)》

文章目录 前言活动规则参与方式本期赠送书籍介绍作者介绍内容简介读者对象获奖名单 结语 前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术…...

Augmented Large Language Models with Parametric Knowledge Guiding

本文是LLM系列文章&#xff0c;针对《Augmented Large Language Models with Parametric Knowledge Guiding》的翻译。 参数知识引导下的增强大型语言模型 摘要1 引言2 相关工作3 LLM的参数化知识引导4 实验5 结论 摘要 大型语言模型&#xff08;LLM&#xff09;凭借其令人印…...

Docker启动Mysql容器并进行目录挂载

一、创建挂载目录 mkdir -p 当前层级下创建 mkdir -p mysql/data mkdir -p mysql/conf 进入到conf目录下创建配置文件touch hym.conf 并把配置文件hmy.conf下增加以下内容使用vim hym.conf即可添加(cv进去就行) Esc :wq 保存 [mysqld] skip-name-resolve character_set_…...

力扣刷题(简单篇):两数之和、两数相加、无重复字符的最长子串

坚持就是胜利 一、两数之和 题目链接&#xff1a;https://leetcode.cn/problems/two-sum/ 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应…...

Spark的基础

实训笔记--Spark的基础 Spark的基础一、Spark的诞生背景二、Spark概念2.1 Spark Core2.2. Spark SQL2.3 Spark Streaming2.4 Spark MLlib2.5 Spark GraphX2.6 Spark R 三、Spark的特点3.1 计算快速3.2 易用性3.3 兼容性3.4 通用性 四、Spark的安装部署4.1 Spark的安装部署就是安…...

如何在idea中新建第一个java小程序

如何在idea中新建第一个java小程序 1.打开软件2.新建项目3.找到安装的jdk文件路径4.继续下一步5.创建项目名称并配置项目路径6.点击完成即可。7.在项目文件的src文件夹下创建java类&#xff0c;程序等7.1其他java项目或文件不能运行的原因&#xff1a; 8.新建类并运行程序9.输入…...

AOP全局异常处理

AOP全局异常处理 由于Controller可能接收到来自业务层、数据层、数据库抛出的异常&#xff0c;因此需要使用AOP思想&#xff0c;进行全局异常处理&#xff0c;异常可通过调试获得。 package org.sinian.reggie.common;import lombok.extern.slf4j.Slf4j; import org.springfram…...

一阶低通滤波器滞后补偿算法

一阶低通滤波器的推导过程和双线性变换算法请查看下面文章链接: PLC算法系列之数字低通滤波器(离散化方法:双线性变换)_双线性离散化_RXXW_Dor的博客-CSDN博客PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点…...

JS中Symbol的介绍

1、 引入Symbol类型的背景 ES5 的对象属性名都是字符串&#xff0c;这容易造成属性名冲突的问题 举例: 使用别人的模块/对象, 又想为之添加新的属性,这就容易使得新属性名与原有属性名冲突 2、Symbol类型简介 symbol是一种原始数据类型 其余原始类型: 未定义(undefined) 、…...

封装统一响应结果类和消息枚举类

在开发中&#xff0c;响应结果都需要统一格式&#xff0c;下面给出一个例子&#xff0c;可自行修改。 package com.lili.utils;import com.fasterxml.jackson.annotation.JsonInclude; import com.lili.enums.AppHttpCodeEnum;import java.io.Serializable;/*** author YLi_Ji…...

应广单片机实现红蓝双色爆闪灯

继续进行点灯&#xff0c;今天来点简单的&#xff0c;红蓝双色爆闪灯&#xff0c;上电即可爆闪&#xff0c;红色接pa.3.pa.4,蓝色接pa6.和pa.7,低电平点亮LED灯&#xff0c;想要高电平点亮&#xff0c;或是驱动N管点亮灯&#xff0c;可以稍作修改。端口电平输出0改1&#xff0c…...

深入了解OSI模型:计算机网络的七大层次

目录 OSI模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 OSI模型 OSI模型是一个网络通信的概念模型&#xff0c;用于描述计算机网络中各个不同层次之间的通信和功能。它将网络通信分为七个不同的层次&#xff0c;每个层次负责不同的任务&#xff0c;使得网…...

GPT-Image-2 老是生成失败?完整排查和修复指南,5 个真根因逐个击破

GPT-Image-2 老是生成失败&#xff1f;完整排查和修复指南&#xff0c;5 个真根因逐个击破GPT-Image-2 的处理时间比文字模型长很多——高质量 1024px 需要 145-280 秒。大多数所谓的"生成失败"其实不是模型问题&#xff0c;而是网络链路&#xff08;CDN、反代、SDK&…...

AM335x嵌入式开发实战:从硬件设计到软件调试的避坑指南

1. 项目概述&#xff1a;为什么AM335x值得深挖&#xff0c;又为何“坑”多&#xff1f;如果你正在嵌入式领域&#xff0c;尤其是工业控制、人机交互或者物联网网关这些方向选型&#xff0c;TI的AM335x系列处理器大概率会进入你的视野。这颗基于ARM Cortex-A8内核的芯片&#xf…...

Python 性能分析:工具与方法

Python 性能分析&#xff1a;工具与方法 1. 技术分析 1.1 性能分析概述 性能分析是定位代码瓶颈的关键&#xff1a; 性能分析层次CPU分析: 定位CPU密集型操作内存分析: 检测内存泄漏IO分析: 发现IO瓶颈线程分析: 排查并发问题1.2 性能分析工具 工具类型功能适用场景cProfileCPU…...

控制理论实践:从PID到MPC的Python实现与仿真调试

1. 项目概述&#xff1a;从“Gonzo”看控制理论在开源项目中的实践最近在GitHub上看到一个挺有意思的项目&#xff0c;名字叫“control-theory/gonzo”。光看这个标题&#xff0c;你可能会有点摸不着头脑——“控制理论”和“Gonzo”有什么关系&#xff1f;Gonzo这个词&#xf…...

基于CircuitPython与Adafruit CLUE的创意灵感生成器开发指南

1. 项目概述&#xff1a;用硬件激发创意的火花你有没有过这样的时刻——面对空白的画布、闪烁的光标&#xff0c;或者一堆零散的电子元件&#xff0c;脑子里却一片空白&#xff0c;急需一个点子来点燃创作的引擎&#xff1f;这种“创意阻塞”几乎是每个创作者都会遇到的难题。传…...

LaTeX-PPT:3分钟掌握PowerPoint专业公式编辑的神器

LaTeX-PPT&#xff1a;3分钟掌握PowerPoint专业公式编辑的神器 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 还在为PowerPoint中编辑复杂数学公式而头疼吗&#xff1f;LaTeX-PPT这款开源插件彻底改变了游…...

Claude与Figma智能协作:基于MCP协议的设计自动化实践

1. 项目概述&#xff1a;当Claude遇上Figma&#xff0c;设计协作的智能革命如果你是一名产品设计师或前端工程师&#xff0c;大概率经历过这样的场景&#xff1a;在Figma里反复调整一个组件的间距&#xff0c;只为找到那个“感觉对了”的数值&#xff1b;或者为了统一整个项目的…...

人为什么要活着的庖丁解牛

它的本质是&#xff1a;**这个问题本身是一个 逻辑陷阱 (Logical Trap)。它预设了生命必须有一个 外部赋予的、预先定义的“目的” (Pre-defined Purpose)&#xff0c;就像软件必须有“需求文档”一样。然而&#xff0c;宇宙是 无目的的 (Purposeless)&#xff0c;生命是 涌现的…...

JiYuTrainer学习自由解决方案:重新定义课堂自主权的教育技术工具

JiYuTrainer学习自由解决方案&#xff1a;重新定义课堂自主权的教育技术工具 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你还记得那种感觉吗&#xff1f;当老师在讲台上演示关…...

对比直接采购,使用聚合平台在模型选型上带来的灵活性体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接采购&#xff0c;使用聚合平台在模型选型上带来的灵活性体验 过去&#xff0c;当我们需要为不同的任务寻找合适的大模型时…...