您现在的位置是:群英 > 开发技术 > 编程语言
Java如何实现冒泡排序?一文了解思路及实现代码
Admin发表于 2022-01-17 18:42:021035 次浏览

    这篇文章给大家分享的是Java如何实现冒泡排序的方法。小编觉得挺实用的,因此分享给大家做个参考,文中有很详细的实现思路及实现代码,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

    冒泡排序(Bubble Sort),是计算机科学领域中较简单的一种排序算法。
    它重复地走访需要进行排序的元素,依次比较两个相邻的元素,如果元素的顺序(如从大到小、首字母从A到Z)错误就把元素的位置互换。
走访元素是重复进行的,直到没有任何相邻位置上的元素需要交换位置,排序完成。
    这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
    光看理论可能会有些迷糊,没有关系,接下来我们详细学习一下冒泡排序究竟是如何比较,又是如何排序的~

    排序思路

    相邻比较,从小到大排序,如果小的就往前换
    I代表了从头到尾遍历循环数据

实现冒泡排序

创建类: BubbleSort.java

package cn.tedu.array;import java.util.Arrays;/**本类用来完成冒泡排序*/public class TestBubbleSort {
	public static void main(String[] args) {
		//1.创建一个无序的数组
		int[] a = {27,96,73,25,21};
		//2.调用method()完成排序
		int[] newA = method(a);
		System.out.println("排序完毕:"+Arrays.toString(newA));
	}
	public static int[] method(int[] a) {
		//1.外层循环,控制比较的轮数,假设有n个数,最多比较n-1次
		//开始值:1 结束值:<= a.length-1 变化:++
		//控制的是循环执行的次数,比如5个数,最多比较4轮,<= a.length-1,最多取到4,也就是[1,4]4次
		for(int i = 1 ; i <= a.length-1 ; i++) {
			System.out.println("第"+i+"轮:");
			//2.内层循环:相邻比较+互换位置
			for(int j=0; j < a.length-i ; j++) {
				//相邻比较,a[j]代表的就是前一个元素,a[j+1]代表的就是后一个元素
				if(a[j] > a[j+1]) {
					//交换数据
					int t = a[j];
					a[j] = a[j+1];
					a[j+1] = t;
					//System.out.println("第"+(j+1)+"次比较交换后:"+Arrays.toString(a));
				}
			}
			System.out.println("第"+i+"轮的结果:"+Arrays.toString(a));
		}
		return a;//把排序好的数组a返回
	}}

    其实我们还可以对现有的排序做优化:
    优化1:前面几轮排序产生的最大值不需要参与后几轮的比较,执行过几轮就会产生几个值不需要参与比较 , i 轮产生 i 个值,所以需要 - i

    优化2:我们要设置一个量,这个量用来检测在当前这一轮的相互比较中究竟有没有发生元素的互换位置,如果发生了互换,说明顺序还没排好,flag就改成true,进行下一轮比较,但是如果在当前轮,所有元素都进行了相互比较,并没有互换位置,这就说明顺序已经排好序了,无需下一轮比较,直接return结束方法即可

        以上就是关于Java实现冒泡排序的介绍,上述示例具有一定的参考价值,有需要的朋友可以了解看看,希望对大家学习Java实现冒泡排序有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: java冒泡排序
相关信息推荐
2022-02-10 18:16:09 
摘要:这篇文章给大家分享的是PHP项目中如何将数据库显示网页,对初学PHP的朋友有一定的帮助。首先,先建好自己的数据库并且添加一些的信息在里面,这里主要讲怎么将建好的数据库中的信息,显示在网页上面。下文有详细的操作介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
2021-12-14 18:02:01 
摘要:这篇文章我们来了解python中的集合的相关内容,集合的知识是Python学习中的基础知识,下文将介绍合集的一些常用命令及关系运算,文中示例代码介绍的非常详细,对大家学习python中的集合有一定的帮助,那么感兴趣的朋友接下来一起跟随小编了解看看吧。
2022-09-05 17:28:05 
摘要:web前端和ui的区别:1、工作职责不同,UI就是UserInterface,主要负责对软件的人机交互,而前端是负责制作出能在浏览器中运行并且用户可见的页面;2、工作技能不同,UI要能熟练使用Photoshop、illustrator等设计软件,完成字体、图标等设计内容,而前端需要掌握HTML、CSS、JavaScript等技术,能对页面的全局进行搭建。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部