java--第4章 数组

举报
北山啦 发表于 2021/04/21 00:03:43 2021/04/21
【摘要】 实验内容:       1.一维数组的定义与赋值访问。       2.二维数组的定义与赋值访问。       3.冒泡排序的编程实现。       4.选择排序的编程实现。 实验步骤: 1. 定义一个含20个元素的整型数组,利用随机函数产生3位数给数组赋值并在控制台输出,要求每行显示10个元素。 提示:利用随机函数产生3位数:(int)(Math.random...

实验内容:

      1.一维数组的定义与赋值访问。

      2.二维数组的定义与赋值访问。

      3.冒泡排序的编程实现。

      4.选择排序的编程实现。

实验步骤:

1. 定义一个含20个元素的整型数组,利用随机函数产生3位数给数组赋值并在控制台输出,要求每行显示10个元素。

提示:利用随机函数产生3位数:(int)(Math.random()∗900)+100

(Math.random()返回的是0到1之间的随机数,则Math.random()*900可以返回0到900之间的数,可以取到0,但是取不到900,这个乘积是double类型的,将它强制转换成int类型,然后加上100,就变成了可以取到100,但是取不到1000.)

源代码:


  
  1. public class Sy4_1 {
  2.     public static void main(String[] args){
  3.         int[] x = new int[20];
  4.         for(int i=0;i<x.length;i++){
  5.            x[i] = (int)(Math.random()*900)+100;
  6.            System.out.print(x[i]+"\t");
  7.              if((i+1)%10==0)
  8.              {
  9.                  System.out.printf("\n");
  10.              }
  11.         }
  12.     }
  13. }

运行结果截图:

2. 利用随机函数产生16个100以内的随机整数给一个4×4的二维数组赋值,要求按行列输出数组。

源代码:


  
  1. public class Sy4_2 {
  2.     public static void main(String[] args) {
  3.         int[][] ww = new int[4][4];
  4.         for(int i=0;i<ww.length;i++){
  5.            for(int j=0;j<ww[i].length;j++){
  6.                ww[i][j] = (int) (Math.random()*100);
  7.                System.out.print(ww[i][j]+"  ");
  8.             }
  9.            System.out.println();
  10.         }
  11.     }

 

运行结果截图:

3. 定义一个整型数组,其中包含元素:10、7、9、2、4、5、1、3、6、8。请编写程序对数组进行由小到大的排序(采用冒泡排序),并输出该数组的每个元素。

提示:冒泡排序的思想:每趟从第一个元素开始,两两比较,将大的放到后面,这样一趟下来,最后的元素为最大,下一趟就只要比较到n-1即可,比较完n-1趟,则排好序。

源代码:


  
  1. import java.sql.SQLOutput;
  2. public class Sy4_3 {
  3.     public static void main(String[] args) {
  4.         int[] arr = {9,8,3,5,4,2,1,6,7};
  5.         System.out.print("冒泡排序前:"+"\n");
  6.         printArray(arr);
  7.         bubbleSort(arr);
  8.         System.out.print("冒泡排序后:"+"\n");
  9.         printArray(arr);
  10.     }
  11.     public static void printArray(int [] arr) {
  12.         //循环遍历数组的元素
  13.         for(int i=0;i<arr.length;i++){
  14.             System.out.print(arr[i]+" ");
  15.         }
  16.         System.out.println("\n");
  17.     }
  18.     //定义数组的排序方法
  19.     public static void bubbleSort(int[] arr) {
  20.         //定义外层循环
  21.         for(int i=0;i<arr.length;i++){
  22.             //定义内层循环
  23.             for(int j=0;j<arr.length-i-1;j++){
  24.                 if(arr[j] > arr[j+1]){
  25.                     int temp = arr[j];
  26.                     arr[j] = arr[j+1];
  27.                     arr[j+1] = temp;
  28.                 }
  29.             }
  30.             System.out.print("第"+(i+1)+"后排序为:"+"\n");
  31.             printArray(arr);
  32.         }
  33.     }
  34.  
  35. }

运行结果截图:

4. 定义一个整型数组,利用随机函数生成10个0~100之间的整数值对数组赋值。利用选择排序按由小到大的順序实现一维数组的排序,并输出该数组的每个元素。

提示:选择排序的思想:是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

源代码:

 


  
  1. import java.util.Random;
  2. public class Sy4_4 {
  3.     public static void main(String[] args) {
  4.         int[] x = new int [10];
  5.         Random r = new Random();
  6.         System.out.println("随机生成的10个数字为:");
  7.         for(int i=0;i<x.length;i++){
  8.             x[i] = (int)(r.nextInt(100));
  9.             System.out.print(x[i]+"\t");
  10.         }
  11.         for(int i = 0; i < x.length - 1; i++) {// 做第i趟排序
  12.             int k = i;
  13.             for(int j = k + 1; j < x.length; j++){// 选最小的记录
  14.                 if(x[j] < x[k]){
  15.                     k = j; //记下目前找到的最小值所在的位置
  16.                 }
  17.             }
  18.             //在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
  19.             if(i != k){  //交换a[i]和a[k]
  20.                 int temp = x[i];
  21.                 x[i] = x[k];
  22.                 x[k] = temp;
  23.             }
  24.         }
  25.         System.out.println();
  26.         System.out.println("交换后:");
  27.         for(int num:x){
  28.             System.out.print(num+"\t");
  29.         }
  30.     }
  31. }

运行结果截图:

 

实验小结

      Java 语言中提供的数组是用来存储固定大小的同类型元素。

      你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

      这次试验大致了解了 Java 数组的声明、创建和初始化,并给出其对应的代码。

  1. 一维数组定义

  1. 二维数组定义

  1. 随机数生成(Math.Random())

      调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布

 

文章来源: blog.csdn.net,作者:北山啦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_45176548/article/details/112262526

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200