JAVA 冒泡排序 推理过程

版权声明: https://blog.csdn.net/m0_37682436/article/details/83502763

冒泡法排序的思路: 
第一步:从第一位开始,把相邻两位进行比较 
如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的 
第二步: 再来一次,只不过不用比较最后一位 
以此类推

	//初始化数组
		int[] a= {5,8,4,6,1,2,7};
		//遍历数组
		for (int i : a) {
			System.out.print(i+" ");
		}
		System.out.println();
		
		//第一次循环 找到最大的数,排在最后  a.length-1
		for (int i = 0; i < a.length-1; i++) {
			if(a[i]>a[i+1]) {
				int temp=a[i+1];
				a[i+1]=a[i];
				a[i]=temp;
			}
		}
		for (int i : a) {
			System.out.print(i+" ");
		}
		
		System.out.println();
		
		//第二次循环  找到倒数第二个最大的数  a.length-2
		for (int i = 0; i < a.length-2; i++) {
			if(a[i]>a[i+1]) {
				int temp=a[i+1];
				a[i+1]=a[i];
				a[i]=temp;
			}
		}
		for (int i : a) {
			System.out.print(i+" ");
		}

最终代码格式

for (int j = 0; j < a.length; j++) {
	for (int i = 0; i < a.length - 1 - j; i++) {
		if (a[i] > a[i + 1]) {
			int temp = a[i + 1];
			a[i + 1] = a[i];
			a[i] = temp;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/m0_37682436/article/details/83502763