Shell排序

【数据集】waymo motion dataset介绍与数据解析可视化 waymo motion数据集下载,数据描述,数据特征和地图特征,数据解析并完成数据可视化 阅读详情

Shell排序的基本思想:严格来说Shell是基于插入排序的思想。

算法基本流程是:

1、将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对,以此类推;

2、一次循环是每一个序列对排好顺序;

3、再变为n/4个序列,再次排序;

4、不断重复上面的过程,直到序列为1,也就完成了整个排序。

import java.math.*;
public class  ShellSort
{
	//固定数组大小
	static final int SIZE = 6;

	public static void main(String[] args) 
	{
		//初始化数组
		int[] nums = new int[SIZE];
		for(int i=0;i<SIZE;i++){
			nums[i] = (int)(Math.random()*100);
		}

		//输出为排序之前的数组
		System.out.println("排序之前的数组为:");
		for(int i = 0;i<nums.length;i++){
			System.out.print(nums[i]+" ");
		}
		System.out.println();
		
		//执行Shell排序
		shellSort(nums);

		//输出排序之后的数组
		System.out.println("输出排序之后的数组为:");
		for(int i = 0;i<nums.length;i++){
			System.out.print(nums[i]+" ");
		}
	}

	public static void shellSort(int[] nums){
		int t;
		int j;
		int r;
		int i;
		for(r = nums.length/2;r>=1; r /= 2){

			for(i = r;i<nums.length;i++){
				t = nums[i];
				j = i-r;
				while(j>=0&&t<nums[j]){
					nums[j+r]= nums[j];
					j -= r;
				}
				nums[j+r]=t;
			}
		}
	}
}


Win10系统安装Ubuntu虚拟机,这回真的是零基础!(结尾附NS3的配置) Win10系统安装Ubuntu虚拟机(结尾附NS3的配置) 序幕 本人现在还在念大二,有一门很有趣而且老师讲得也不错的课程《计算机网络原理》。这周老师布置了一个实验《NS3网络模拟》,为了详细记录本次实验过程,顺便也便于自己复习,就写了这篇博客,希望能够对你有帮助! NS3是什么呢?实际上就是一门算法,和计算机网络有关的。不过在我们日常使用的Windows系统上去做这个实验是行不通的,这个实验一定要在Linux系统上进行模拟才能玩的下去,作为一名 Windows选手对此表示不爽但是没办法,为了实验也只 阅读详情

相关推荐

优刻得首个「国产千卡智算集群」落地,支持智源千亿大模型训练

在人工智能引领的时代浪潮中,算力已成为技术进步与创新的核心驱动力。面对当下AI算力需求的飙升、高端AI芯片供应受限的挑战,加之OpenAI带来的技术封锁,唯有坚定不移的发展自主可控的国产技术方案,持续壮大国产智算集群规模,才能一路突破围追堵截,进一步促进国产大模型产业生态繁荣。集群还提供了完善高效的软件栈工具,集成多种主流的深度学习编程框架,通过测试验证,确保了对行业领先人工智能模型的高效支持,做到开箱即用,用户可快速投入模型的开发和部署,加速了其在人工智能领域的布局和发展。方面取得了显著成效。

Ucloud_TShare的博客 1473

Shell编程之排序

Shell编程之排序,包含冒泡排序、选择排序、插入排序、反转排序、睡眠排序以及希尔排序等,含详细讲解原理,以及图文讲解,配合示例,以及代码行

欲买桂花同载酒 3707

结构力学程序算法理论基础(一)————虚功原理

1.约束 定义约束:限制质点或者质点系运动的条件称为约束,表示这些限制条件的数学方程称为约束方程。 (1)几何约束 限制质点或者质点系在空间的几何位置的条件称为几何约束.如单摆,其中质点M可绕固定点O在平面Oxy内摆动,摆长为l.这时摆杆对质点的限制条件是:质点M必须在以点O为圆心,以l为半径的圆周上运动.其约束方程为: 又质点M在固定的曲面上运动,那么曲面方程就是质点M的约束方程,即 上...

l93919861的博客 4511

shell的排序

shell的排序

m0_71931851的博客 2173

RT-Thread学习笔记(5):SPI驱动框架分析

1、两个设备模型 在spi驱框架中,一般会自己初始化一个总线设备(rt_spi_bus),当我们通过挂载后,会相应注册一个从设备(rt_spi_device)。 1、总线设备模型 struct rt_spi_bus { struct rt_device parent; rt_uint8_t mode; const struct rt_spi_ops *ops; struct rt_mutex lock; struct rt_spi_device *owner; };

BLBQ962464的博客 1万+

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9178

shell排序详解

shell排序详解

m0_56921470的博客 3915

手把手教你玩转服务器芯片架构--​​7.1 项目1:基于FPGA的RISC-V软核设计(Verilog实现核心指令执行单元)​

本文介绍了基于FPGA的RISC-V软核设计实践项目。项目采用Verilog实现RV32I指令集核心处理器,包含指令解码、ALU、寄存器堆等关键模块设计,并通过功能仿真验证。在Xilinx Artix-7 FPGA上完成综合与部署,资源利用率控制在5%以内。最后探讨了五级流水线优化、指令集扩展等进阶方案。该实践完整覆盖了从指令集设计、RTL实现到FPGA部署的全流程,可作为学习处理器架构与FPGA开发的典型案例。

MHD0815的博客 173

shell排序

举个例子,像{2,1,3,6,7,5,8,9}这样就可以称为基本有序了。我们分割待排序记录的目的就是减少待排序记录的个数,并将整个序列向基本有序发展。而分完组后就各自排序的方法达不到我们的要求。...

weixin_53183018的博客 2386

搞定ESD(四):ESD干扰耦合路径深入分析(二)

静电放电过程中静电干扰主要通过三种间接耦合方式干扰敏感源,即电场耦合、磁场耦合、地弹。前文已经深入分析了静电放电过程中的电场耦合,今天就谈谈静电放电过程中的磁场耦合,也可以理解环路耦合。熟话说的好〝人往高处走,水往低处流〞,静电电流也会选择阻抗最低的路径返回到源端。静电电流流会源端的路径实际上就构成了电流环路,当敏感信号形成的电流环路与静电电流环路存在共环路时,就会将静电放电干扰耦合到敏感信号环路内,干扰敏感信号。

记得诚 2794

Sigrity Power DC Resitance Network Model Generation模式生成电阻SPICE模型操作指导

Sigrity Power DC Resitance Network Model Generation模式是用于提取负载每个pin电阻SPICE模型的,结果以spice网表形式展现,仍然以Motherboard.spd为例进行说明。目的是模拟实际情况,via的孔壁电镀1mil,中间是空心的,让via不完全被填充金属成为实心via。Upper/lower Tolerance:上下公差,设置为5%,也就是压降允许的范围。P/F Mode:通过/失败模式,选择Worst,最差的情况。

weixin_54787054的博客 417

希尔排序ShellSort

希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。 Shell排序又称作缩小增量排序。 1、算法思想 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d21重复上述的分组和...

weixin_34344403的博客 298

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2747

算法:shell排序【排序】

实现Shell排序 Description 实现Shell排序,对给定的无序数组,按照给定的间隔变化(间隔大小即同组数字index的差),打印排序结果,注意不一定是最终排序结果! Input 输入第一行表示测试用例个数,后面为测试用例,每一个用例有两行,第一行为给定数组,第二行为指定间隔,每一个间隔用空格隔开。 Output 输出的每一行为一个用例对应的指定排序结果。 Sample Input 1...

weixin_44851932的博客 606

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

shell排序 C++

Shell排序算法严格来说基于插入排序的思想,又称为希尔排序或缩小增量排序。Shell排序算 法的排序流程如下:  (1) 将有 n个元素的数组分成n/2 个数字序列,第 1 个数据和第n/2+1 个数据为一对,……。  (2) 一次循环使每一个序列对排好顺序。  (3) 然后,再变为n/ 4 个序列,再次排序。  (4) 不断重复上述过程,随着序列减少最后变为1 个,也 就完成了整个排序

giver 1252

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

排序算法之shell排序

基本流程: 1.将数组中的n个元素分为n/2的序列,即第1个元素跟第n/2+1个元素组成一对,第2个元素跟第n/2+2个元素组成一对....... 2.每次循环让每一个循环对都按小在前大在后排序好 3.将数组中n个元素变为n/4(n/8,n/16......)的序列,再次跟步骤1进行类似排序 4.重复上述过程,直到将数组最后分为1的序列时,完成排序 //随机生成数组并实现shell排序...

权世界的博客 472

老版QQ原生表情gif动态

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

Shell排序算法

Shell排序算法严格来说是基于插入思想,又称为希尔排序或缩小增量排序。Shell排序算法的排序流程如下: (1)将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对,等等,以此类推。 (2)一次循环使每一个序列对排好顺序。 (3)变为n/4个序列,再次排序。 (4)不断重复上述过程,随之序列减少直至最后变为1个,完成整个排序。 void ShellSort(int *a,...

qq_43404969的博客 1017

排序算法——shell排序(希尔排序)

Shell排序 Shell排序,又称希尔排序,是我最喜欢的一种排序方式,也是我认为在简单的排序算法里效率最高、在效率高的排序算法里最简单的。(就像我,是成绩差的学生里代码最好的,在代码好的学生里成绩最差的(啊,这个好像没有什么好攀比的)) 接下来详细讲解下Shell排序的流程、复杂度 使用到的网络资料链接: 百度百科 参考的书籍: C语言K&R 首先使用《C语言K&R》上的代码作分析 /* shellsort: sort v[0]...v[n-1] into increasing order

私のBookShelf 2702

Shell排序 Java

排序的方法有很多,一般言,很难说哪一种方法是最好的。每一种方法都有优缺点,有各自应用的环境。排序一般会进行两种操作1、比较两关键字大小;2、将记录从一个位置移到另一个位置;前者通常来说是必要的,而后者则可以通过改变记录存储方式来避免。后面还会用一篇专门的文章来讨论一下怎么来分析这些算法的复杂度。还请您留意,应该就是最近一周出来!(2015.6.20前) 常见的内部排序算法大致可以分为以下

coding 771

java shell排序_JAVA实现Shell排序

Shell排序可以理解为插入排序的变种,它充分利用了插入排序的两个特点:(1).当数据规模小的时候非常高效。(2).当给定数据已经有序时的时间代价为O(N)所以,Shell排序每次把数据分成若干块,来使用插入排序,而且之后在这若干个小块排好序的情况下把它们合成大一点的小块,继续使用插入排序,不停的合并小块,知道最后一个块,并使用插入排序。这里每次分成若干小块是通过“增量”来控制的,开始时增量较大,...

weixin_35786759的博客 264

shell排序法的C++实现

shell排序算法: shell排序算法的时间复杂度为o(n2),本文中的间隔每次除以2,若修改时间间隔,那么就可以得到更加优化的时间代价 shell排序算法基于插入排序的两个性质: 1、小序列性质:插入排序在小序列时的排序时间较短. 2、有序性质:插入序列在有序序列中的时间消耗较少,接近于O(n). 因此可以将较长的序列分割成一些较小的序列进行插入排序,然后再将这些较小的序列合成较大的

码农谈算法 2457
上一篇: 插入排序
下一篇: 快速排序
StevenLoveMaggie
博客等级 码龄16年 10粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值