package com.cobra.basiclearn;
/**
* @Author: Baron
* @Description:
* 1、第一个数与第二个数对比,如果第一个数大,交换位置;
* 2、1中得到的数组,第二个与第三个对比,如果第二个数大,交换位置;
* 3、2得到数组继续往下比较,指到最后一个;
* 4、第一轮比完,第一个就排到它的最高处;
* 5、第二轮继续从第一个开始比较
* 6、总共进行array.length轮排序
* @Date: Created in 2019/3/25 10:54
*/
public class BubbleSortDemo {
public static void main(String[] args) {
int[] array = {16, 2, 3, 5, 9, 7, 1, 123};
System.out.println("排序前数组为:");
for (int num: array) {
System.out.print(num+",");
}
int compareCount = 0;
int moveCount = 0;
//2、从第一次开始比较
for (int j = 0; j < array.length-1; j++) {
//1、第一个开始与后面的比较
for (int i = 0; i < array.length - 1; i++) {
compareCount++;
if (array[i] > array[i + 1]) {
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
moveCount++;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for (int num: array) {
System.out.print(num+",");
}
System.out.println();
System.out.println("比较的次数:"+ compareCount);
System.out.println("交换的次数:"+ moveCount);
}
}
测试: