冒泡排序 经典例题2.0 (带有随机数)

问:
随机生成100以内的十个数,找出其最大值下标和最小值下标,将其降序排序,输出总和,并查询是否含有8这个数字。

public class P188SunJiShu {
    public static void main(String[] args) {
        int [] arr =new int[10];//定义数组,长度为十
        int sum=0;
        int index2 =-1;//建立索引,判断是否含有8
        Random random =new Random();//随机数生成语法
        for (int i =0;i<10;i++){
            arr[i]=random.nextInt(100);//生成100以内的随机数
            sum +=arr[i];//求和
            while (arr[i]==8){//含有8,将其标记下来
                index2 =1;
            }
        }
        System.out.print("随机数组:");
        for (int i =0;i< arr.length;i++) {
            System.out.print( arr[i]+"\t");
        }//打印随机数数组
        System.out.println("");
        //通过index2的值来判断是否含有8
        if (index2 ==-1){
            System.out.println("随机数中没有8");
        }else if(index2 ==1){
            System.out.println("随机数中有8");
        }
        int max =arr[0];
        int maxindex =0;//标记最大值下标
        int min =arr[0];
        int minindex =0;//标记最小值下标
        //最大值最小值下标确定
        for (int i =1;i< arr.length;i++){
            if (max <=arr[i]){
                max=arr[i];
                maxindex =i;
            }else if (min>arr[i]){
                min =arr[i];
                minindex =i;
            }
        }
        System.out.println("最大下标:"+maxindex);
        System.out.println("最小下标:"+minindex);
        int temp =0;//中间变量,进行元素判断以及调整位置
        for (int j =0;j< arr.length-1;j++) {
            for (int i = 0; i < arr.length-1-j; i++) {
                if (arr[i] < arr[i + 1]) {
                    temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.print("倒序顺序:");
        for (int i =0;i< arr.length;i++) {
            System.out.print( + arr[i]+"\t");
        }//打印降序数组
        System.out.println("");
        System.out.println("总和为:"+sum);
    }
}

注:随机数生成方法:
1、java中随机取数使用random方法
构造函数方法有二:

 ① Random(long seed);//利用seed作为随机发生器的种子
   ② - Random();  //省略了seed,则则利用系统时间作为随机发生器的种子
        Random random = new Random();    
   创建完随机对象之后通过以下方法可以获得不同类型的随机数method:
    nextInt()、nextLong()、nextFloat()、nextDouble();

random方法的包:
             import java.util.Random;

指定范围内的随机数三种方法:
//100以内的随机数
①通过java.util包中的Random类的next方法来获得

  import java.util.Random;
  public class CeShi{
 public static void main(String []args) {
    Random random = new Random();
    for(int i=0;i<10;i++)
    System.out.print(random.nextInt(100)+" ");
}
}

②(数据类型)(最小值+Math.random()*(最大值-最小值+1))

          (int)(Math.random()*(100-1+1))
      System.out.print((int)(Math.random()*100)+" ");

③利用%进行取模操作即可

        产生的随机数有正有负,利用abs方法取绝对值 通过%100就能得到100 以内的随机数
        System.out.print(Math.abs(random.nextInt()%100)+" ");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值