Java(冒泡排序)(附完整代码)

冒泡排序

冒泡排序(Bubble Sort)是最简单和最通用的排序方法,其基本思想是:在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;如此下去,直至最终完成排序 。由此可得,在排序过程中,大的数据往下沉,小的数据往上浮,就像气泡一样,于是将这种排序算法形象地称为冒泡排序 。

算法原理

假定序列中有n个数,要进行从小到大的排序。若参与排序的数组元素共有n个,则需要n-1轮排序。在第í轮排序中,从左端开始,相邻两数比较大小,若反序则将两者交换位置,直到比较第n+1-i个数为止。第1个数与第2个数比较,第2个数和第3个数比较,一直到第n-i个数与第n+1-i个数比较,一共处理 n-i次。此时,第n+1-i个位置上的数已经有序,后续就不需要参加以后的排序。 

(1)第1轮冒泡排序先从第1个数和第2个数开始比较,若第1个数大于第2个数,则需要交换两者的位置;否则保持不变。重复这一过程,直到处理完本轮数列中最后两个数。 

(2)第2轮冒泡排序与第1轮冒泡排序进行相同的排序,使大的数交换到n-2的位置上。 

(3)重复以上过程,共需经过n-1轮冒泡排序后,数据实现升序排序。 

算法示例

(1) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 

(2) 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 

(3) 针对所有的元素重复以上的步骤,除了最后一个。 

(4) 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

 完整代码

//冒泡排序
public class BubbleSort01  {
	
	//编写一个main方法
	public  static void main (String[] args){
	
	int arr[] = {66,69,0,24,12};
	int temp = 0; 		//用于辅助交换的变量

	for (int i = 0;i < arr.length-1 ;i++ ) {	//比较
		
	
		for (int j = 0;j < arr.length-1 - i;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");
		}
	}


	}
}

运行结果如下

以上代码是我使用Sublime Text3编写,也推荐给初学者,前期学习尽量手写代码,IDEA太过智能,快捷键和提示太多,初学可以使用Sublime辅助学习,掌握基础熟悉代码再换成IDEA

最后,平台很好,一定要借助各种资源学习,再展示自己,这是我第一次尝试发帖,将以前学习笔记(曾经敲的冒泡排序代码)分享出来,希望看完的同学,要尝试去理解,代码不难主要是思路要牢记,Java很卷,但要么出局,要么出众,一定要努力了过后,才不会留遗憾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值