Java实现冒泡排序算法

package test;

public class MaopaoPaixu {
	public static void main(String[] args) {
		//通过控制台输入集合数据
		int[] arr = new int[3];
		arr[0] = 3;
		arr[1] = 2;
		arr[2] = 1;
		//当i=0时,i小于2,
		//j=0,j<3-1-0=2;arr[0]=3>arr[1]=2,arr[0]=2,arr[1]=3,231
		//j=1,j<3-1-0=2,arr[1]=3>arr[0]=1,arr[1]=1,arr[2]=3,213
		//j=2,
		
		//i=1,i<2
		//j=0,j<3-1-1=1,arr[0]=2>arr[1]=1,123
		//j=1
		
		//如果不是-1,也不是-1-i,会怎么样
		//为什么这个排序这样写
		
		
		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]) {
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		//321
		//外层循环n-1
		//内层循环n-1-i,也就是越往后面,循环的次数越少,随着外层的次数增多而减少
		//外层之所以只需要比较n-1次,是因为只需要比较两者
		//内层之所以不断减少,是因为,每一比较之后,最大的数一定会到最后一位,就是冒泡的形象描述
		
		//231,213,不用再比较 
		//123,不用再比较
	}
}

  

posted @ 2020-05-24 15:22  Java精进之路  阅读(295)  评论(0编辑  收藏  举报