算法-排序-冒泡排序

冒泡排序:依次两两比较,将大数放置末尾,循环结束完成排序

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);
	}
}

打印结果:

posted @ 2021-03-04 15:01  多米诺的古牌  阅读(44)  评论(0)    收藏  举报