java学习之冒泡排序

本文深入解析冒泡排序算法,通过实例分析其排序过程,并提供Java代码实现。冒泡排序是一种简单的排序方法,通过多次遍历数组,依次比较并交换相邻元素以达到排序目的。文章总结了冒泡排序的特点,包括进行的轮数和每轮确定的元素位置。同时,还展示了完整的Java代码示例,帮助读者理解冒泡排序的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

冒泡排序(Bubble Sort),是一种 计算机科学 领域的较简单的 排序算法 。 它重复地走访过要排序的元素列,依次比较两个相邻的 元素 ,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。下面我们通过举例来分析冒泡排序算法

 一.分析冒泡排序

将数组[24,69,80,57,17]用冒泡排序的方式从小到大排序

第一轮排序:目的是将最大数放在最后一位

第一次比较:[24,69,80,57,17]将24与69进行比较,位置不变

第二次比较:[24,69,80,57,17]将69与80进行比较,位置不变

第三次比较:[24,69,80,57,17]将80与57进行比较,80大于57,交换位置

第四次比较:[24,69,57,80,17]将80与17进行比较,80大于17,交换位置

第一轮得到的结果为[24,69,57,17,80]

第二轮排序:目的是将第二大数放在倒数第二位

第一次比较:[24,69,57,17,80]将24与69进行比较,位置不变

第二次比较:[24,69,57,17,80]将69与57进行比较,69大于57,交换位置

第三次比较:[24,57,69,17,80]将69与17进行比较,69大于17,交换位置

第二轮得到的结果为[24,57,17,69,80]

第三轮排序:目的是将第三大数放在倒数第三位

第一次比较:[24,57,17,69,80]将24与57进行比较,位置不变

第二次比较:[24,57,17,69,80]]将57与17进行比较,57大于17,交换位置

第三轮得到的结果为[24,17,57,69,80]

第四轮排序:目的是将第三大数放在倒数第三位

第一次比较:[24,17,57,69,80]将24与17进行比较,24大于17,交换位置

第四轮得到的结果为[24,17,57,69,80]

最后的结果为[24,17,57,69,80]

二.总结冒泡排序的特点

一共有5个元素,进行了4轮排序 ,每一轮排序都可以确定一个数的位置,比如第1轮确定了最大数,第2轮确定了第二大数,依此类推。每轮比较在减少4->3->2->1.

三.代码演示 

public class BubbleSort{
	public static void main(String[] args) {
		int temp = 0;
		int[] arr = {24,69,80,57,17};
		for (int i=0;i<arr.length-1 ;i++ ) {
			for (int j = 0;j<arr.length-i-1 ;j++ ) {
			if (arr[j]>arr[j+1]) {
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp; 
			}
		}
		System.out.println("\n==第"+(i+1)+"轮==");
		for (int j=0;j<arr.length ;j++ ) {
			System.out.print(arr[j]+"\t");
		}
		}
	}
}

 运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值