概述
思路:
- 每次随机获得一个数,将其对应的元素与“最后一个元素”交换位置
- 随机数随着遍历,最大范围依次减一,所谓“最后一个元素”也在变化
- 结果如图所示:
随机排序过程 - 代码如下:
import java.util.Arrays; public class RandomTest { public static void main(String[] args) { int[] a = {1,2,3,4,5,6,7}; System.out.println("随机排序前的a数组:"+Arrays.toString(a)); //当只剩最后一个元素时,是与本身交换,故只遍历length-1次 for (int i = 0; i < a.length-1; i++) { // System.out.println("第"+(i+1)+"次遍历"); // System.out.println("本次参与排序的范围为:1~"+(a.length-i)); //随机得到一个下标,每次下标获取的范围随着遍历减一 int random = (int)(Math.random()*(a.length-i)); //将下标对应的元素与范围最大值对应元素交换位置 //(第一次范围最大值为第10,第二次范围最大值为第9……) // System.out.println("本次以随机数"+random+"为下标所对应的元素"+a[random]+"与最后一个元素"+a[a.length-1-i]+"交换位置"); int last = a[a.length-1-i]; a[a.length-1-i] = a[random]; a[random] = last; // System.out.println("本次遍历后的数组:"+Arrays.toString(a)); // System.out.println(); } System.out.println("随机排序后的a数组:"+Arrays.toString(a)); } }
最后
以上就是明理月饼为你收集整理的Java面试题 将数组随机打乱顺序,生成一个新的数组的全部内容,希望文章能够帮你解决Java面试题 将数组随机打乱顺序,生成一个新的数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复