java基本语言

最近在JAVA中学习了洗牌算法。

洗牌算法是常见的随机问题;它可以抽象成:得到一个M以内的所有自然数的随机顺序数组

常见问题描述:

1.将自然数1 ~ 100随机插入到一个大小为100的数组,无重复元素

2. 1 ~ 52张扑克牌重新洗牌

现在来看看我的代码吧!

import java.util.Random;
import java.util.Scanner;


public class Test01 {


public static void main(String[] args) {

System.out.println("输入成绩");
 
Scanner scan = new Scanner(System.in);
 
double[] score = new double[5];
 
for(int i=0; i < score.length; i++){
 
 System.out.println("第"+(i+1)+"次");
 
 score[i] = scan.nextDouble();
 
}
for(int i=0; i < score.length; i++)//输出
{
  System.out.print(score[i]+"\t");
 
}
  System.out.println();
  double sum = 0;
  for(int i=0; i < score.length; i++) {
  
 sum += score[i];
 }
  
  System.out.println("和为"+sum);
  
  System.out.print("平均数是" +(sum/score.length));
 
double max = score[0];

for (int i =0; i < score.length; i++)
{
if (score[i] > max)
max = score[i];
}
System.out.println("最大值"+max);

   int maxID = 0;
   
   for (int i =1; i < score.length; i++){
   
    if (score[i] > score[maxID])
   
maxID =i;
    }
   
   System.out.println("最大值"+score[maxID]);
   
   int a =3;
   
   int b =5;
   
   int temp = a ;
   
   a = b;
   
   b = temp;
   
   int temp1= 0;
   for(int i =0; i<score.length-1; i++)
   {
    temp1 =i;
    for(int j = i+1; j < score.length;j++)
    {
    if(score[j] > score[temp1])
    temp1 = j;
    if(i!= temp1){
   
    double a1 = score[i];
   
    score[i] = score[temp1];
   
    score[temp1] = a1;
   
   
  }
   for(int i1 =0; i1 < score.length;i1++)
   
    System.out.print(score[i1]+"\t");
    }
       System.out.println();
       
       for(int i1 = 0; i1 < score.length-1; i1++)//洗牌算法
       {
        int p =(new Random(1).nextInt(score.length-i1)+i1);
        double a1 = score[i1];
        score[i1] = score[p];
        score[p] = a1;
       }
     
       
   
    }
    
 
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值