package com.lyil;
import java.util.Arrays;
import java.util.Random;
/**
* 冒泡排序算法
* 数组长度为:n
* 第1次排序,从后往前推,依次比较,交换位置,取出最小的放到第1个位置(后面的数据会发生交换)
* 第2次排序,从后往前推,依次比较,交换位置,取出最小的放到第2个位置(后面的数据会发生交换)
* ......
* 第n次排序,从后往前推,依次比较,交换位置,取出最小的放到第n个位置(后面的数据会发生交换)
*
*
* @author:Administrator
* @Create:2018年1月30日 @version V1.0
* @Description:TODO
*/
public class BubbleSort {
public static void main(String[] args) {
// int[] arr = getArr(10, 100);
int[] arr={127,118,105,101,112,100};
out: for (int i = 0; i < arr.length - 1; i++) {
boolean exchange = false;
for (int j = arr.length - 1; j > i; j--) {// 从后往前推,每一次循环即将最小的放到最前面,第i次需要执行循环体length-i次,故j>i即可
// 交换数据
if (arr[j] < arr[j - 1]) {
// 执行交换
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
exchange = true;
}
}
// 没有执行交换,则表明排序结束
if (!exchange) {
break out;
}
System.out.println(Arrays.toString(arr));
}
}
private static int[] getArr(int len, int n) {
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
arr[i] = new Random().nextInt(n);
}
return arr;
}
}