冒泡排序的Java实现

先上代码实现

package 排序;

public class 冒泡排序 {
//冒泡排序的基本思想:每次比较两个相邻的元素,如果顺序错误就将它们交换
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		int a[]= {3,2,6,5,7,9,11,20};
		maopao(a);
	}
	//创建一个静态冒泡排序的方法
	public static void maopao(int a[]) {//这里需要传进来一个形参数组对这个数组进行排序
		int swap;
		for(int i=0;i<a.length;i++) {
			for(int j=0;j<a.length-i-1;j++) {
				if(a[j]>a[j+1]) {
					swap=a[j];
					a[j]=a[j+1];
					a[j+1]=swap;
				}
			}
		}
		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);
		}
	}
}

假如对一个无序的数组 2  6 3  7进行排序

排序的过程 6 3 7 2  (1)

                    6 7 3 2 (2)

                     7 6 3 2 (3) 

外层的for循环指的是会比较几趟,数组长度为4,很明显比较三趟(当数组为长度为n时比较n-1,因为数组长度是从0开始,所以就是a.length)

内层for循环指的是一趟内元素的交换次数,每比较一次一个元素的位置就已经确定,第一趟确定一个就-1,第二次-2,第三次-3.......也就是n-1-i

if判断时简单的交换,从大到小或者从小到大修改里面的大于号小于号就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值