冒泡 选择排序

public class TestArraySort{
	public static void main(String[] args){
		int[] a = {8,5,4,3,7,2};
		
		//冒泡排序法 相邻的元素比较 每次找出最大的数
		/*
		      0 1 2 3 4 5     n=6
			  8 5 4 3 7 2
		
		0-1   5 8 4 3 7 2
		1-2   5 4 8 3 7 2
        2-3   5 4 3 8 7 2     i=0
        3-4   5 4 3 7 8 2     j=0;j<5;j++
        4-5   5 4 3 7 2 8

		0-1   4 5 3 7 2 8
		1-2   4 3 5 7 2 8     i=1
		2-3   4 3 5 7 2 8     j=0;j<4;j++
        3-4   4 3 5 2 7 8 

		0-1   3 4 5 2 7 8     i=2
		1-2   3 4 5 2 7 8     j=0;j<3;j++
		2-3   3 4 2 5 7 8 
        		
		0-1   3 4 2 5 7 8     i=3
		1-2   3 2 4 5 7 8     j=0;j<2;j++
		
		0-1   2 3 4 5 7 8     i=4    j=0;j<1;j++
		*/
		for(int i = 0 ; i < a.length-1; i++){
			for(int j = 0 ; j < a.length-1-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;
				}
			}
		}
		
		for(int i= 0 ; i < a.length;i++){
			System.out.print(a[i]+"\t");
		}
	}
}
冒泡排序
相邻两数比较,每次冒泡,可以找出最大数。
因此打比方,有6个数,只需要冒泡五次,
即可找出五个最大数,剩下的一个即为最小的数。
public class TestArraySort2{
	public static void main(String[] args){
		int[] a = {8,5,4,3,7,2};
		//选择排序法 一个元素 和 其他所有元素比较
		/*
			 0 1 2 3 4 5 
			 8 5 4 3 7 2
		
		0-1  5 8 4 3 7 2    i=0 
		0-2  4 8 5 3 7 2    j=1;j<6;j++
		0-3  3 8 5 4 7 2
		0-4  3 8 5 4 7 2 
		0-5  2 8 5 4 7 3
		
		1-2  2 5 8 4 7 3    i=1
		1-3  2 4 8 5 7 3    j=2;j<6;j++
		1-4  2 4 8 5 7 3
		1-5  2 3 8 5 7 4
		
		2-3  2 3 5 8 7 4    i=2
		2-4  2 3 5 8 7 4    j=3;j<6;j++
		2-5  2 3 4 8 7 5 
		
		3-4  2 3 4 7 8 5    i=3
		3-5  2 3 4 5 8 7    j=4;j<6;j++
		
		4-5  2 3 4 5 7 8    i=4  
			                j=5;j<6;j++
		*/
		for(int i = 0 ; i < a.length-1; i++){
			for(int j = i+1 ; j<a.length; j++){
				//比较a[i]和 a[j]
				if (a[i] > a[j]) {
					int t = a[i];
					a[i] = a[j];
					a[j] = t;
				}
			}
		}
		
		for(int i = 0 ; i < a.length ; i++){
			System.out.print(a[i]+"\t");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值