希尔排序-Java版

STM32H743 LAN8720网口配置避坑指南:用CubeMX v6.5.0快速搞定LWIP+FreeRTOS 本文详细介绍了使用CubeMX v6.5.0配置STM32H743与LAN8720网口的LWIP+FreeRTOS方案,涵盖硬件连接、时钟配置、ETH外设初始化及LWIP协议栈调优等关键步骤。特别针对常见陷阱提供解决方案,帮助开发者快速实现稳定网络通信,适用于嵌入式网络开发场景。 阅读详情

希尔排序又称缩小增量排序,是1959年由D.L.Shell提出来的。

算法描述

先取定一个小于n的整数gap1作为第一个增量,把整个序列分成gap1组。所有距离为gap1的倍数的元素放在同一组中,在各组内分别进行排序(分组内采用直接插入排序或其它基本方式的排序)。
然后取第二个增量gap2<gap1,重复上述的分组和排序。
依此类推,直至增量gap=1,即所有元素放在同一组中进行排序为止。

        @Test
	public void shellSort() {
		int a[] = { 12, 15, 13, 5, 6, 8, 44, 8, 26 };
		print(a);
		// 分组
		int gap = (a.length + 1) / 2;
		// 组内排序---为便于理解希尔的思想,组内算法用最简单的冒泡
		while (gap > 0) {
			for (int i = 0; i < a.length - gap; i++) {
				for (int j = i; j < a.length - gap; j += gap) {
					if (a[j] > a[j + gap]) {
						swap(a, j, j + gap);
					}
				}
			}
			if (gap > 1) {
				gap = (gap + 1) / 2;
			} else {
				break;
			}
		}
		print(a);

	}
测试结果如下:
12 15 13 5 6 8 44 8 26 5 6 8 8 12 13 15 26 44 


基于Python的智能动漫更新监控爬虫系统:从原理到实战 本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。 阅读详情

相关推荐

Bootloader详解,理解Bootloader看这篇就够了

这里写目录标题一、Bootloader作用(目的)二、完成Boot最终目的的前提条件三、对前提条件的详细说明3.1、对前提条件(1)的说明:3.2、对前提条件(2)的说明:3.3、对前提条件(3)的说明:3.4、对前提条件(4)的说明:3.4、对前提条件(5)的说明:四、loader是干啥的 一、Bootloader作用(目的) Bootloader=Boot + loader Boot的目的: 最终目的:跳到C语言中;为了C语言运行程序会进行一系列的初始化,系统一上电后如何通过一系列的设置让软件程序员

iduuigdg的博客 11万+

希尔排序 java版

1.选一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组;3.减小增长量,,最小减为1,重复第二步操作。2.对分组好的每一组数据完成插入排序;

m0_57761313的博客 123

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1395

Java 版希尔排序算法

希尔排序算法 分为交换法和移步法并测试时间 package com.wmq.demo01.sort; import java.util.Arrays; /** * 希尔排序 */ public class ShellSort { public static void main(String[] args) { //int[] arr = {1,-7,39,4,5};...

qq_40748996的博客 163

AU混响终极指南:从‘干声’到‘空间感’,用总音轨和发送技巧打造专业人声

本文详细介绍了如何在Adobe Audition(AU)中使用混响效果器,通过总音轨和发送技巧将‘干声’转化为具有专业‘空间感’的人声。从混响基础原理到总线架构设置,再到精细控制和自动化调整,全面解析了提升音频质量的实用技巧,适用于音乐制作、播客和内容创作。

weixin_30512089的博客 331

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

希尔排序java版

当增量减少到1时,算法就变成了普通的插入排序,但由于数据已经部分有序,所以这个过程会非常快。:选择一个大于1的增量序列,通常使用的序列是 𝑛/2n/2,𝑛/4n/4,...,1。:对间隔为增量的元素进行插入排序。:减少增量,重复上述过程。

biemowomaomao的博客 388

IEC 104电力规约详细解读(一) - 报文结构、报文分类、ASDU

比如,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧,当然也可以不要求(S帧内容示例参考例1)。所以U帧格式的控制欲第一个字节就只有6种情况,分别是0x83(TESTER确认)、0x43(TESTER命令)、0x23(STOPDT确认)、0x13(STOPDT命令)、0x0B(START确认)、0x07(START命令)ASDU(应用服务数据单元),协议原文格式最好去101协议去看看,会比较详细。遥信、遥测、遥控、遥调、总召、对时等都需要使用I格式传送。

张二狗的博客 1万+

希尔排序(JAVA版)

希尔排序 希尔排序是插入排序的基础上完成的。希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,希尔排序适合于规模中型的数组。多至几千个元素。没有快速排序快,所以对规模大的数据不是最优的选择。但是比冒泡排序、选择排序、插入排序快得多。希尔排序是分组的插入排序。 在数组已经全部有序的情况下,使用希尔排序的效率最高。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增

yuanyinxiaing的专栏 605

【ESP32接入国产大模型之豆包】

🥳🥳🥳现在,我们在本教程中,您学习了如何使用ESP32接入语言大模型之豆包。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣如果你有任何问题,可以通过q group(945348278)加入鹏鹏小分队,期待与你思维的碰撞😘😘😘。

vor234的博客 1万+

学Simulink--机器人基础关节控制场景实例:基于Simulink的无刷直流电机(BLDC)关节六步换相位置控制仿真

本文详细介绍了基于Simulink的BLDC六步换相位置控制仿真方法,针对机器人关节的低成本控制需求。重点阐述了霍尔定位、六步换相和位置闭环三大核心原理,通过Simulink建模实现了从霍尔信号处理到位置环控制的全流程。仿真结果表明,该系统可实现0.3°的定位精度和80ms的响应时间,满足教育机器人等应用场景需求。文章还提供了核心代码模块和参数设置方法,并探讨了转矩脉动抑制、无传感器控制等进阶优化方向,为低成本机器人关节驱动提供了实用解决方案。

amy_mhd的博客 152

希尔排序算法-Java版

1. 希尔排序 1.1 希尔排序的基本介绍 1.2 希尔排序思想 1.3 希尔排序的时间复杂度和空间复杂度等 2. 代码演示 1. 希尔排序 1.1 希尔排序的基本介绍 希尔排序是加强版的插入排序,相对与普通的插入排序做了优化,比普通的插入排序多了一个步长的概念 1.2 希尔排序思想 就是把数据下标按照一定的步长进行分组,然后每组分别用普通插入排序进行排序,知道步长减至为 1 时...

shengjk1的博客 237

WPF vs Avalonia: 跨入C#桌面应用现代化的大门

请注意,这只是一个目录,详细内容将根据这个结构逐步展开。如果您需要某个特定部分的详细内容,请告知我,我将为您提供深入的解析和示例代码。WPF,全称Windows Presentation Foundation,是微软为Windows平台量身打造的UI框架。自2006年发布以来,它就像一位经验丰富的老船长,引领着桌面应用的航船在技术的海洋中乘风破浪。Avalonia,一个新兴的跨平台UI框架,它像一位年轻的探险家,勇敢地探索着桌面应用的新世界。

java专栏 2398

希尔排序(java版)

推导 public static void shellSort(int[] arr){ int temp=0; //第一轮,第一轮将10个数据分成5组 for (int i=5;i<arr.length;i++){ //遍历各组中所有的元素(共5组,每组有两个元素) for (int j=i-5;j>=0;j-=5){ //如果当前元素大于加上步长后的那个元素,说明

jingnanyu的博客 165

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

希尔排序--Java版

目录1、介绍2、步骤解说3、图解4、代码展示5、结果展示———————————————————————————1、介绍       希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。        希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序

辉哥大数据 1455

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java版八大排序之希尔排序

希尔排序:是插入排序的一种,又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是按照不同步长对元素进行插入排序, 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。 基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d

sinat_41920065的博客 318

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

排序算法之希尔排序【Java版】

引言 本篇是排序算法的第三篇,希尔排序,是插入排序的一个更高效的改进版。 1、算法步骤 1、对需要排序的数列,按照不同的步长进行分组; 2、对分组的数列进行组内排序; 3、然后继续减小步长,重复1、2操作,当步长为1的时候,排序就完成了。 下图是网上找的,下面的d表示间隔,也叫做增量,相同颜色的是一组: 2、时间复杂度 平均时间复杂度O(n log n),最好情况O(n log2^22 n) 3、算法实现 public class ShellSort { public static void m

夏夜凉月 245

希尔排序(C,JAVA版)

关于希尔排序的一些知识 希尔排序:希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。 (来自百度百科) 希尔排序(Shellsort),

weixin_51756720的博客 213

希尔排序算法(java版)

希尔排序:直接插入排序的改良版,威力更强。 直接插入排序是每一移一个,比较相邻的两个 希尔排序第一次分堆是 n = n / 2为一堆的,也就是下标为i的元素和下标为i + n/2,i + n/2 +… < n的元素作为一堆的, 每次比较i 和 i + n /2 的元素,保证n[i] < n[i + n/2] 第二次分堆 step = n / 4,每次加step词,保证 i + step + …的次序

qq_33824312的博客 313

插入排序与希尔排序Java版

插入排序 时间复杂度:O(n²) 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用 in-place 排序(即只需用到 O(1) 的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。——维基百科 publ...

张可的博客 313

严蔚敏版 希尔排序java代码

public class ShellSort {  public static void main(String[] args) {   // TODO Auto-generated method stub   int[] a={0,10,27,30,29,18,40,7,9};   ShellSort ss = new ShellSort();   ss.shellSort(a, a.

hfj8220的专栏 521

希尔排序(Java基础版)

希尔排序是一种不稳定的排序方法,基本思想: 将包含n个元素的数组,分成n/2个数组序列,第一个数据和第n/2+1个数据为一对... 将每对数据进行比较和交换,排好序 然后分成n/4个数组序列,再次排序 不断重复以上过程,直至整个数组排序完成 package SortRank; /** * 希尔排序:也称缩小增量排序(当gap=1时,就是直接插入排序了) * @author 183...

buer219的博客 146

和小强一起学数据结构java版之希尔排序

本文通过图文结合的方式详细的分析了希尔算法的原理以及编写并调试了希尔算法的具体实现。

学习->分享->成长 550

排序算法之希尔排序Java版

/** * * 希尔排序 * 希尔排序又叫缩小增量排序,是直接插入排序算法的一种更高效的改进版本 * 希尔排序属于不稳定排序 * 希尔排序空间复杂度O(1) * 希尔排序的时间复杂度和其增量序列有关系,平均时间复杂度O(n^1.3) * * 基本原理: * 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接

达拉斯母牛 524

希尔排序算法(java版)

【代码】希尔排序算法(java版)

weixin_52047251的博客 137

八大排序算法之希尔排序Java版

八大排序算法之希尔排序Java版

qq_64431576的博客 293
上一篇: 确定比赛名次(拓扑排序)
下一篇: 快速排序-Java版
splendor.s
博客等级 码龄10年 91粉丝 67原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值