制作一个随机排序的程序,在给定的数组中将里面的元素随机打乱位置
package com.mijia.array;
import java.util.Random;
import java.util.Scanner;
public class RandomSort {
//制作一个随机排序的程序,在给定的数组中将里面的元素随机打乱位置
public static void main(String[] args) {
String[] name = new String[5];//创建一个n元素的数组,可以存放n个人名
Scanner sc = new Scanner(System.in);//创建一个输入对象,将人名录入
for (int i = 0; i < name.length; i++) {
System.out.println("请输入第" + (i + 1) + "个名字");
name[i] = sc.next();
}
Random r = new Random();//创建随机数对象
for (int i = 0; i < name.length; i++) {//打乱顺序的原理是第i个数组元素与随机出来的0-4小标的元素进行互换位置
int r1 = r.nextInt(name.length);//将随机出来的数存入r1中//这里括号里不用具体数值,就是为了代码的多场景性
String temp = "";//定义一个中间变量
temp = name[i];//开始互换元素
name[i] = name[r1];
name[r1] = temp;
}
for (int i = 0; i < name.length; i++) {//再将排好的序输出
System.out.println((i + 1) + "、" + name[i]);
}
}
}
当然如果你觉的就打乱一次顺序不爽,可以加一个while!!
package com.mijia.array;
import java.util.Random;
import java.util.Scanner;
public class RandomSort {
//制作一个随机排序的程序,在给定的数组中将里面的元素随机打乱位置
public static void main(String[] args) {
String[] name = new String[5];//创建一个n元素的数组,可以存放n个人名
Scanner sc = new Scanner(System.in);//创建一个输入对象,将人名录入
for (int i = 0; i < name.length; i++) {
System.out.println("请输入第" + (i + 1) + "个名字");
name[i] = sc.next();
}
Random r = new Random();//创建随机数对象
while (true) {
for (int i = 0; i < name.length; i++) {//打乱顺序的原理是第i个数组元素与随机出来的0-4小标的元素进行互换位置
int r1 = r.nextInt(name.length);//将随机出来的数存入r1中//这里括号里不用具体数值,就是为了代码的多场景性
String temp = "";//定义一个中间变量
temp = name[i];//开始互换元素
name[i] = name[r1];
name[r1] = temp;
}
for (int i = 0; i < name.length; i++) {//再将排好的序输出
System.out.println((i + 1) + "、" + name[i]);
}
System.out.println("是否要重新排序?");
System.out.println("请输入1或0");
int x = sc.nextInt();
if (x == 0) {
break;
}
}
}
}
输出如下: