算法-排序-冒泡排序
冒泡排序:依次两两比较,将大数放置末尾,循环结束完成排序
package com.test.sort;
public class MaoPaoSort {
/**
* 打印数组
* 将最后一位后加"]",其它后面加","
* @param arr
*/
public void printSort(int[] arr) {
StringBuilder sbu = new StringBuilder();
sbu.append("[");
for (int i = 0; i < arr.length; i++) {
if(i == arr.length -1) {
sbu.append(arr[i]+"]");
}else {
sbu.append(arr[i] + ",");
}
}
System.out.println(sbu.toString());
}
/**
* 依次比较两个数的大小,将最大的放到末尾
* 第一层循环 只是为了标记已经将几个数放到队尾了
* 第二层循环是将最大长度-已排好的数,每次都从头开始,依次两两比较大小,将大数往后排
* @param arr
*/
public void MaoPaoSortTest(int[] arr) {
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;
new MaoPaoSort().printSort(arr);
}
}
}
}
public static void main(String[] args) {
System.out.println("排序前");
int[] arr = {51, 46, 20, 18, 65, 97, 82, 30, 77, 50,2,33,12,100};
new MaoPaoSort().printSort(arr);
System.out.println("排序后");
new MaoPaoSort().MaoPaoSortTest(arr);
new MaoPaoSort().printSort(arr);
}
}
打印结果:

浙公网安备 33010602011771号