[6] 算法路 – 双向冒泡排序的Shaker

[6] 算法路 – 双向冒泡排序的Shaker

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Shaker序列 –算法

1、 气泡排序的双向进行,先让气泡排序由左向右进行。再来让气泡排序由右往左进行,如此完毕一次排序的动作

2、 使用left与right两个旗标来记录左右两端已排序的元素位置。

 

一个排序的样例例如以下所看到的:

排序前:45 19 77 81 13 28 18 1977 11

 

往右排序:19 45 77 13 28 18 19 7711 [81]

向左排序:[11] 19 45 77 13 28 1819 77 [81]

 

往右排序:[11] 19 45 13 28 18 19[77 77 81]

向左排序:[11 13] 19 45 18 28 19[77 77 81]

 

往右排序:[11 13] 19 18 28 19 [4577 77 81]

向左排序:[11 13 18] 19 19 28 [4577 77 81]

 

往右排序:[11 13 18] 19 19 [28 4577 77 81]

向左排序:[11 13 18 19 19] [28 4577 77 81]

 

如上所看到的,括号里表示左右两边已排序完毕的部份,当left > right时。则排序完毕。

SourceCodes

int ShakerSort(int a[],int lens)
{
	int left=0,right=lens-1,shift;
	int i;
	while(left<right)
	{
		for(i=left;i<right;i++)
		{
			if(a[i]>a[i+1])
			{
				SWAPER(a[i],a[i+1]);
				shift=i;
			}
		}
		right = shift;
		for(i=right-1;i>=left;i--)
		{
			if(a[i+1]<a[i])
			{
				SWAPER(a[i],a[i+1]);
				shift=i+1;
			}
		}
		left=shift;
	}
	return  0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117298.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 热拔插更换硬盘方法

    热拔插更换硬盘方法热拔插更换硬盘方法如果要替换的磁盘已做了镜像,推荐如下步骤:1.删除该磁盘上所有逻辑卷的复件,使用rmlvcopy命令或unmirrorvg命令。2.从卷组中删除该磁盘,使用reducevg命令。3.使用rmdev命令删除该磁盘定义。4.物理移除该磁盘。如果磁盘不是可热交换的(hot-swappable),可能要求重启系统。5.使备用的磁盘可用。如果磁盘是可

    2022年5月30日
  • 手把手教你上手Proteus(下载安装+仿真51单片机程序)

    手把手教你上手Proteus(下载安装+仿真51单片机程序)Proteus软件的功能很强大,它集合了电路仿真、PCB设计、虚拟模型仿真,不过本文只介绍Proteus的安装和它的电路仿真功能(单片机及外设)。本文介绍的Proteus版本为Proteus8.9SP2Pro(免破解版本)

    2022年5月25日
  • springboot实战第四章-自定义HttpMessageConverter

    springboot实战第四章-自定义HttpMessageConverter

    2021年5月15日
  • 使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶

    使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶写在最前,使用EDU邮箱申请JetBrains学生包可以免费使用一年JetBrains全家桶欢迎光顾本人的博客,以后会经常记录生活点滴,学习工作所见1.首先你需要一个EDU邮箱JetBrains学生包的申请很简单,所以国内的EDU邮箱也可以.2.进去JetBrains官网注册账号,这个邮箱可以自己随便选,用自己的邮箱就可以.!之后会给你的邮箱发送一个验证邮件,点击激活…

    2022年7月25日
  • 职业目标的评估与调整_遥感图像目标检测数据集

    职业目标的评估与调整_遥感图像目标检测数据集COCO系列文章:MSCOCO数据集目标检测评估(DetectionEvaluation)(来自官网)MSCOCO数据集人体关键点评估(KeypointEvaluation)(来自官网)MSCOCO数据集输出数据的结果格式(resultformat)和如何参加比赛(participate)(来自官网)MSCOCO官网数据集(百度云)下载,COCOAPI、MASKA……

    2022年10月16日
  • 以太网用户侧接口(以太网协议转换方案)

    以太网接口示意图如下图1:以太网接口 如果您的职业生涯大部分时间都在从事PCB设计,并且您在计算机接口的布局和布线方面有经验,那么您就知道一件事是正确的:在器件应用说明中会有一些推荐的设计建议,并不是这些建议总是错误的,而是这些建议很容易断章取义。一位同事向我提出的一项建议是,在离散磁铁和连接器之间布线时,在RJ45连接器下方使用接地层。一些应用说明建议将系统接地覆盖RJ45连接器下方,一些应用说明建议将接地平面拆分为系统和机箱部分,以提供更强的隔离。应用说明中的一些建议指出,PHY、磁体和/或

    2022年4月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号