java--第4章 数组
实验内容:
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.)
源代码:
public class Sy4_1 { public static void main(String[] args){ int[] x = new int[20]; for(int i=0;i<x.length;i ){ x[i] = (int)(Math.random()*900) 100; System.out.print(x[i] "\t"); if((i 1)==0) { System.out.printf("\n"); } } }}
运行结果截图:
2. 利用随机函数产生16个100以内的随机整数给一个4×4的二维数组赋值,要求按行列输出数组。
源代码:
public class Sy4_2 { public static void main(String[] args) { int[][] ww = new int[4][4]; for(int i=0;i<ww.length;i ){ for(int j=0;j<ww[i].length;j ){ ww[i][j] = (int) (Math.random()*100); System.out.print(ww[i][j] " "); } System.out.println(); } }
运行结果截图:
3. 定义一个整型数组,其中包含元素:10、7、9、2、4、5、1、3、6、8。请编写程序对数组进行由小到大的排序(采用冒泡排序),并输出该数组的每个元素。
提示:冒泡排序的思想:每趟从第一个元素开始,两两比较,将大的放到后面,这样一趟下来,最后的元素为最大,下一趟就只要比较到n-1即可,比较完n-1趟,则排好序。
源代码:
import java.sql.SQLOutput;public class Sy4_3 { public static void main(String[] args) { int[] arr = {9,8,3,5,4,2,1,6,7}; System.out.print("冒泡排序前:" "\n"); printArray(arr); bubbleSort(arr); System.out.print("冒泡排序后:" "\n"); printArray(arr); } public static void printArray(int [] arr) { //循环遍历数组的元素 for(int i=0;i<arr.length;i ){ System.out.print(arr[i] " "); } System.out.println("\n"); } //定义数组的排序方法 public static void bubbleSort(int[] arr) { //定义外层循环 for(int i=0;i<arr.length;i ){ //定义内层循环 for(int j=0;j<arr.length-i-1;j ){ if(arr[j] > arr[j 1]){ int temp = arr[j]; arr[j] = arr[j 1]; arr[j 1] = temp; } } System.out.print("第" (i 1) "后排序为:" "\n"); printArray(arr); } } }
运行结果截图:
4. 定义一个整型数组,利用随机函数生成10个0~100之间的整数值对数组赋值。利用选择排序按由小到大的順序实现一维数组的排序,并输出该数组的每个元素。
提示:选择排序的思想:是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
源代码:
import java.util.Random;public class Sy4_4 { public static void main(String[] args) { int[] x = new int [10]; Random r = new Random(); System.out.println("随机生成的10个数字为:"); for(int i=0;i<x.length;i ){ x[i] = (int)(r.nextInt(100)); System.out.print(x[i] "\t"); } for(int i = 0; i < x.length - 1; i ) {// 做第i趟排序 int k = i; for(int j = k 1; j < x.length; j ){// 选最小的记录 if(x[j] < x[k]){ k = j; //记下目前找到的最小值所在的位置 } } //在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换 if(i != k){ //交换a[i]和a[k] int temp = x[i]; x[i] = x[k]; x[k] = temp; } } System.out.println(); System.out.println("交换后:"); for(int num:x){ System.out.print(num "\t"); } }}
运行结果截图:
实验小结
Java 语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。
这次试验大致了解了 Java 数组的声明、创建和初始化,并给出其对应的代码。
- 一维数组定义
- 二维数组定义
- 随机数生成(Math.Random())
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布
赞 (0)