冒泡排序
产生一个随机数组,数组长度随机,利用冒泡排序的方法进行排序
package one_冒泡排序;
import java.util.Arrays;
import java.util.Random;
import com.sun.swing.internal.plaf.basic.resources.basic;
/*
* 随机产生一组数组,
* 数组长度随机[7,13)
* 然后进行冒泡排序,输出
* */
public class Test {
public static void main(String[] args) {
// 产生随机数组a
int[] a = suiji();
System.out.println("产生的随机数组:");
System.out.println(Arrays.toString(a));
System.out.println("-----------------");
// 冒泡排序,输出数组
paixu(a);
// System.out.println(a);
}
public static int[] suiji() {
// 随机数组长度[7,13)
int n = 7 + new Random().nextInt(6);
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
// 遍历数组赋值,产生[0,200)随机数复制给数组a
a[i] = new Random().nextInt(200);
}
return a;
}
public static void paixu(int[] a) {
// 冒泡排序 as [101, 169, 91, 43, 118, 34, 120, 93, 62, 132]
// [101, 91, 169, 43, 118, 34, 120, 93, 62, 132]
// i控制冒泡的轮数,每轮冒出去一个
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {// a.length-1 不能超过数组长度比较次数是数组长度-1;再减i是冒出去的不需要再次比较
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
System.out.println("排序后的数组:");
System.out.println(Arrays.toString(a));
}
}