冒泡排序
分析
分析:冒泡可以用生活的例子做比喻,比喻成打擂,有几个人就打几回合。
这里比喻的是数组有几个数就循环几次的道理是一样的。
第一回合:选出冠军,
第二回合:选出亚军,
第三回合:选出季军,
以此类推生成排行榜。
代码
1.生成随机数组
这里随机生成长度为10的任意数字的数组,进行排序。
// 随机生成数字
public static int[] sortArr()
{
int[] arr = new int[10];
Random random = new Random();
for (int i = 0; i < arr.length; i++)
{
arr[i] = random.nextInt(10);
}
return arr;
}
2、接收数组遍历值
int[] ints = sortArr(); // 接收生成的随机数组
int temp; // 用来交换内容的值,(可以比喻成擂台)
System.out.println("排序前");
// 遍历排序前的顺序
for (int i = 0; i < ints.length; i++) {
if (i != ints.length -1)
System.out.print(ints[i]+"、");
else
System.out.println(ints[i]);
}
3、执行排序
// 回合制(几个数循环几次,每次循环拿到一个冠军(最大数))
for (int i = ints.length-1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
if (ints[j] > ints[j+1]){ // 前者大于后者进行交换,升序
temp = ints[j];
ints[j] = ints[j+1];
ints[j+1] = temp;
}
}
System.out.println("排序中");
// 循环遍历
for (int k = 0; k < ints.length; k++) {
if (k != ints.length -1)
System.out.print(ints[k]+"、");
else
System.out.println(ints[k]);
}
}