二维数组的章节作业

案例:已知有个升序的数组,要求插入一个元素,该数组的顺序依然是升序
eg:[10,12,45,90],添加23后,数组为[10,12,23,45,90]

 1 public class homeWork01{
 2     public static void main(String[] args){
 3       /*
 4       案例:已知有个升序的数组,要求插入一个元素,该数组的顺序依然是升序
 5       eg:[10,12,45,90],添加23后,数组为[10,12,23,45,90]
 6 
 7       思路分析:本质是数组的扩容+定位;
 8       一.我们先确定,添加的数应该插入到哪个位置;
 9       二 .然后扩容
10      首先先定义原始数组,然后再定义要添加的元素
11      遍历arr
12       */
13      //一、先定位
14      int [] arrys = {10,12,45,90};
15      int add = 23;//定义要添加的元素
16      int index = -1;//定义要添加的位置
17      for (int i = 0; i<arrys.length ;i++ ) {
18          if (add<=arrys[i]) {
19              index = i;
20              break;//找到位置以后,就退出
21          }
22      }
23      //判断index是否找到相应的位置
24        if (index == -1) {//说明还没找到位置
25            index = arrys.length;//如果index进行比较后,还没找到位置,就把Index放置到数组的最后;
26        }
27      // 二、扩容
28      /*
29        分析:先创建一个新的数组
30        再将arrys的元素拷贝到rags数组中去;
31        并且要跳过index的位置
32        int [] arrys = {10,12,45,90};
33      */ 
34        //先创建一个新的数组,大小arr.length+1
35        int [] rags = new int [arrys.length+1];
36        //将arrys的元素拷贝到rags数组中去,并且要跳过index的位置
37        for (int i=0,j=0;i<rags.length ;i++ ) {//j代表的是arrys数组的下标
38               if (i !=index) {//i代表的是新创建数组的下标
39                      rags[i] =arrys[j];
40                      j++;
41               }else{//i这个位置就是要插入的数
42                   rags[i] = add;
43               }
44        }
45           arrys = rags;//把rags新数组的值赋值arrys;
46           System.out.println("插入新元素后arrys数组的顺序情况:");
47           for (int i = 0;i<arrys.length ;i++ ) {
48               System.out.print(arrys[i]+" ");
49           }
50     }
51 }

 案列2:随机生成10个整数(1到100的范围)保存到数组;

并倒序打印以及求平均值、最大值、和最大值的下标;并查找里面是否有8;

 1 public class homeWork02{
 2     public static void main(String[] args){
 3         /*
 4          案列2;随机生成10个整数(1到100的范围)保存到数组;
 5 并倒序打印以及求平均值、最大值、和最大值的下标;并查找里面是否有8;
 6         */
 7       int[ ] arr =new int [10];
 8       
 9       for (int i = 0; i<arr.length ;i++ ) {
10           arr[i] = (int) (Math.random()*100)+1;//随机生成数(1到100)之间的整数
11       System.out.print(arr[i] +" ");
12       }
13       System.out.print("\n"+"arr数组排序情况(倒序)"+"\n");
14     for (int i=arr.length-1;i>=0 ;i-- ) {//倒序排序分布
15         System.out.print(arr[i]+" ");
16     }
17 //输出平均值,最大值,最大值下标
18         int sum =arr[0];  
19         int max =arr[0];//先默认数组第一个元素为最大值;
20         int maxIndex=0;  
21       System.out.println("\n平均值输出情况");
22       for (int i = 1 ;i<arr.length ;i++ ) {
23           if (max<arr[i]) {
24               max =arr[i];
25               maxIndex = i;
26           }
27            sum += arr[i];
28        } 
29      System.out.println("平均值="+(sum/arr.length));
30      System.out.println("最大值="+max+"\t"+"最大值下标"+maxIndex);
31 
32 //查找这个数组是否含有8  ->使用顺序查找
33      int findNum = 8;
34      int index =-1;
35      for (int i =0;i<arr.length ;i++ ) {
36          if (findNum == arr[i]) {
37              System.out.println("找到这个数"+findNum+"下标为"+i);
38              index = i;
39              break;
40          }
41      }
42 if (index == -1) {
43              System.out.println("没有找到这个数"+findNum);
44          }
45 
46     }
47     
48 }

 

posted @ 2022-02-22 15:52  捞月亮的渔夫  阅读(29)  评论(0)    收藏  举报