随机生成十个1-100的随机数,使用冒泡排序法进行升序和降序排列。
其中主要是
if (num[j] > num[j + 1]) {
int t = num[j];
num[j] = num[j + 1];
num[j + 1] = t;
}
例如a=3,b=2.想要ab交换位置那么需要一个第三方。
如t=a //t=3
a=b //a=2
b=t // b=3
这样就完成了两个数的交换。
package text;
import java.util.Arrays;
import java.util.Random;
public class maopao {
public static void main(String[] args) {
Random random = new Random();
int[] num = new int[10];//生成十个随机数
for (int i = 0; i < num.length; i++) {
num[i] = random.nextInt(100) + 1;//+1是生成数1-100 jdk1.8
// num[i]= random.nextInt(1,101);//生成1-100 jdk17
}//排序前输出
System.out.println("随机生成数" + Arrays.toString(num));
System.out.println("---------------------------");
for (int i = 0; i < num.length - 1; i++) {
for (int j = 0; j < num.length - 1 - i; j++) {
//从小到大排序
// 前后两个大小换位置,当前面的数大于后面的数时前后交换位置
if (num[j] > num[j + 1]) {
int t = num[j];
num[j] = num[j + 1];
num[j + 1] = t;
}
}
}
//从小到大排序的输出结果
System.out.println("从小到大排序的输出结果:" + Arrays.toString(num));
System.out.println("-------------------------------");
//从大到小
for (int i = 0; i < num.length - 1; i++) {
for (int j = 0; j < num.length - 1 - i; j++) {
//从小到大
if (num[j] < num[j + 1]) {
int t = num[j];
num[j] = num[j + 1];
num[j + 1] = t;
}
}
}
System.out.println("从大到小排序的输出结果" + Arrays.toString(num));
System.out.println("-----------------------------");
Random random1 = new Random();
for (int i = 0; i < num.length; i++) {
int a = random1.nextInt(num.length);
int b = random1.nextInt(num.length);
if (a == b) {
--i;
} else {
int t = num[a];
num[a] = num[b];
num[b] = t;
}
}
System.out.println("乱序的输出结果" + Arrays.toString(num));
}
}
输出结果:
![](https://img-blog.csdnimg.cn/img_convert/95374b68978f373453ae40facecb4cc7.png)