import java.util.Arrays;
import java.util.Random;
public class BubbleSort {
public static void main(String[] args) {
int[] array = new int[10];
randomArray(array); //生成随机数组
System.out.println();
int[] sortArr = bubbleSort(array);
System.out.print("排序后数组:");
for (int i : sortArr) {
System.out.print(i + "-_-");
}
}
private static int[] bubbleSort(int[] array) {
int[] sortArr = Arrays.copyOf(array, array.length);
//开始冒泡排序
//外层是要比较的趟数(这里注意要从1开始,否则内层循环就越界了)
for (int i = 1; i < sortArr.length; i++) {
boolean flag = true;
//内层是一趟中具体的比较次数,每次要做的事情就是相邻数字比较,交换
for (int j = 0; j < sortArr.length - i; j++) {
if (sortArr[j] > sortArr[j + 1]) {
int temp = sortArr[j];
sortArr[j] = sortArr[j + 1];
sortArr[j + 1] = temp;
flag = false;
}
}
if (flag){ //如果一趟下来没有发生交换,说明已经有序
break;
}
}
return sortArr;
}
private static void randomArray(int[] array) {
Random ra = new Random();
int i = 0;
System.out.print("原 始 数组:");
do {
array[i] = (ra.nextInt(100));
System.out.print(array[i] + "_-_");
i++;
} while (i < array.length);
}
}