我是靠谱客的博主 明理月饼,最近开发中收集的这篇文章主要介绍Java面试题 将数组随机打乱顺序,生成一个新的数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

思路:

  1. 每次随机获得一个数,将其对应的元素与“最后一个元素”交换位置
  2. 随机数随着遍历,最大范围依次减一,所谓“最后一个元素”也在变化
  3. 结果如图所示:
    随机排序过程

     

  4. 代码如下:
    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面试题 将数组随机打乱顺序,生成一个新的数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部