冒泡排序

冒泡排序算法

原理

  • 选定一个方向,如从小到大

  • 依次将每个下标下的数据,从左到右比较,把最小的数据放到左边来,如依次把第一个元素和后面的元素比较,如果发现后面的元素比第一个元素小,就将其交换,放到第一个元素来

  • 第二轮,从第二个元素开始,依次类推

  • 时间复杂度O(n*n)

实现

public class MaoPao {


	public static void main(String[] args) {
		int[] arr = new int[]{3, 4, 1, 21, 10, 6, 0};
		sort(arr);
		printlnArr(arr);
	}

	/**
	 * 从小到大排序
	 *
	 * @param arr
	 */
	public static void sort(int[] arr) {
		int len = arr.length;

		for (int i = 0; i < len - 1; i++) {
			for (int j = i + 1; j < len; j++) {

				if (arr[i] > arr[j]) {
					int t = arr[j];
					arr[j] = arr[i];
					arr[i] = t;
				}

				printlnArr(arr);
			}
			System.out.println("a lun hui");
		}
	}


	public static void printlnArr(int[] arr) {
		String str = "";
		for (int i : arr) {
			str += i + " ";
		}
		System.out.println(str);
	}
}

代码结果

3 4 1 21 10 6 0 
1 4 3 21 10 6 0 
1 4 3 21 10 6 0 
1 4 3 21 10 6 0 
1 4 3 21 10 6 0 
0 4 3 21 10 6 1 
a lun hui
0 3 4 21 10 6 1 
0 3 4 21 10 6 1 
0 3 4 21 10 6 1 
0 3 4 21 10 6 1 
0 1 4 21 10 6 3 
a lun hui
0 1 4 21 10 6 3 
0 1 4 21 10 6 3 
0 1 4 21 10 6 3 
0 1 3 21 10 6 4 
a lun hui
0 1 3 10 21 6 4 
0 1 3 6 21 10 4 
0 1 3 4 21 10 6 
a lun hui
0 1 3 4 10 21 6 
0 1 3 4 6 21 10 
a lun hui
0 1 3 4 6 10 21 
a lun hui
0 1 3 4 6 10 21
原文地址:https://www.cnblogs.com/windliu/p/9203480.html