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

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

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

Shaker序列算法

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

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

 

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

排序前: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)
上一篇 2022年1月7日 下午10:00
下一篇 2022年1月7日 下午11:00


相关推荐

  • 阿里矢量图库使用

    阿里矢量图库使用官方网址 https www iconfont cn 先准备好 github 账号用来登录对想要的图标点击添加入库点击右上的小车 点击加入项目之后进入我的项目 点击生成代码在 Fontclass 选项卡中 会生成 css 网址 这个 css 文件可以直接在项目中引用 也可以下载后使用 点击复制代码可以获得相应字体图标的 class 完整 html 代码 DOCTYPE tml gt

    2026年3月20日
    2
  • 理解图像中卷积操作的含义

    理解图像中卷积操作的含义原文地址:https://blog.csdn.net/chaipp0607/article/details/72236892?locationNum=9&amp;fps=1上文用生动的例子来解释卷积记载了卷积的含义,现在就来看看卷积在图像处理中的应用吧。(ps:本文大部分内容系转载大神的博客,现在csdn强制图片水印,实在感到很无奈!!!)数字图像处理中卷积数字图像是一个二维的离散信号,对…

    2022年5月28日
    47
  • 计算机类单位换算,计算机单位换算大全「建议收藏」

    计算机类单位换算,计算机单位换算大全「建议收藏」电脑世界是由0与1组成,其中有数以万计的线路,一条线路传递一个信号,而0代表没有信号,1代表有信号,就像电源开关一样,同一时间只可能有一种状态,所以电脑最基本的单位就是一条线路的信号,我们就把它称作“位”,英文叫做bit,缩写为b。“位”和“字节”其实都是电脑的计量单位,我们可以理解成字节是由位组成的,一个“字节”等于8“位”,Byte是它的缩写.位(bit)这个单位太小,所以字节(Byte)是…

    2022年7月27日
    6
  • Linux系统批量压缩图片工具

    Linux系统批量压缩图片工具1 安装压缩工具命令 2 在图片目录下 执行以下指令 3 压缩时间根据图片的大小与数量变化 可以通过过滤是否有 find 命令在执行中判断执行完成 注意 1 上面命令中的 100k 代表只压缩低于 100k 的图片 2 quality60 代表压缩比例 质量值为 0 100 之间的数值 数字越大 质量越好 可以找几张不同大小的图片 进行多个比例的压缩进行对比 根据需要确定最终比例数值 3 压缩完毕后直接覆盖原图片 不需要进行别的操作

    2026年3月17日
    2
  • Agents-SDK智能体开发[1]之入门

    Agents-SDK智能体开发[1]之入门

    2026年3月16日
    2
  • {{userData.name}}已认证

    {{userData.name}}已认证

    2026年3月15日
    2

发表回复

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

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