Java程序设计语言D实验二

您所在的位置:网站首页 字符串程序设计实验结论怎么写 Java程序设计语言D实验二

Java程序设计语言D实验二

2024-07-05 16:37:53| 来源: 网络整理| 查看: 265

一、实验内容描述(问题域描述)

【实验题目】Java的数组 【实验目的】熟练掌握java的一维、多维数组的使用。 【实验内容】 (1)编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出。 (2)找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小(注:一个二维数组也可能没有这样的鞍点)。 (3)编程输出杨辉三角的前10行。

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

使用随机数生成1000以内的随机数: Random r = new Random(); for(int i = 0;i < arr2D[0].length;i++){ for(int j = 0;j < arr2D.length ;j++){ arr2D[i][j] = r.nextInt(1000); System.out.print( arr2D[i][j]+" "); } System.out.println(); }

使用快速排序将每行的元素从小到大排列,然后每行的第九个元素就是每行的最大值。 快速排序算法通过多次比较和交换来实现排序,其排序流程如下: (1)首先设定一个分界值,通过该分界值将数组分成左右两部分。 [2] (2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。 (3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。右侧的数组数据也可以做类似处理 (4)重复上述过程,可以看出,这是一个递归定义。通过递归将左侧部分排好序后,再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后,整个数组的排序也就完成了。

核心代码为: public static int getIndex(int arr[],int low ,int high){ int key = arr[low]; while(low < high){ while(low= key){ high–; } arr[low] = arr[high]; while(low < high && arr[low] arr[i]=new int[i+1]; } for(int i=0;i if(j0 || ij) { arr[i][j]=1; }else { arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; } } } 经过格式化输出后达到该效果: 在这里插入图片描述

三、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

对于二维数组而言,我们在进行获取每行的最大值的时候,我们可以首先对这个二维数组的每行进行快速排序人得到每行从小到大一次递增,在进行查找鞍点的时候就容易多了。由于是使用的时候随机数产生一组1010的二维数组,所以每次产生的结果都是不一样,这也就导致了每个二维数组出现鞍点的概率很小,当然,如果是55的维数组的话,那么这个出现鞍点概率就大很多。因此可以知道,二维数组的长度是可以影响鞍点出现的概率的,二维数组的长度越长,那么它出现鞍点的概率就越小。

四、实验小结、建议及体会

通过此次实验,对二维数组的使用以及杨辉三角的原理有了更深的理解。同时,私用数据结构中的快速排序,强化了专业课数据结构的知识。

五、源代码 package two; import java.util.Random; /** * @author 陌意随影 TODO :生成一个10*10的二维随机整数数组, 并将该数组的每行最大值保存于一个一维数组中, 将每列平均值保存于另外一个一维数组中并分别输出。 *2019年12月16日 上午10:57:08 */ public class Array2DDemo { public static void main(String[] args) { //十乘十二维数组 showArray2D(); //寻找鞍点 while(true){ boolean fla = findAndian(); if(!fla){ break; } } //杨辉三角 yanghuisuaojiao(); } private static boolean findAndian() { //获取随机的二维数组 int[][] arr2D = new int[10][10]; Random r = new Random(); for(int i = 0;i arr2D[i][j] = r.nextInt(1000); System.out.print( arr2D[i][j]+" "); } System.out.println(); } //装取鞍点的一维数组,可能是未必有10个 int[] values = new int[arr2D.length]; for(int i = 0 ;i //获得每行的最大值 int maxValueOf = maxValueOfRow( arr2D[i]); //获得每列的最小值 int minValueOf = minValueOfClomn(arr2D, j); int value = arr2D[i][j]; if(maxValueOf ==value&& minValueOf == value){ values[i] = value; } } } System.out.println("鞍点:"); boolean fla = false; for(int i = 0;i fla = true; } } System.out.println(); if(fla ){ System.out.println("有鞍点!"); }else{ System.out.println("无鞍点!"); } return fla; } /** * @return 返回每行中的最小值 */ public static int maxValueOfRow(int [] arr){ int[] newArr = new int[arr.length]; for(int i =0 ; i int min =arr2D[0][index]; for(int i = 1;i min =arr2D[i][index]; } } return min; } /** * 打印杨辉三角 */ public static void yanghuisuaojiao() { int[][] arr=new int[10][]; for(int i=0;i for(int j=0;j arr[i][j]=1; }else { arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; } } } for(int i=0;i System.out.print("\t"); } for(int j=0;j int[][] arr2D = new int[10][10]; Random r = new Random(); for(int i = 0;i arr2D[i][j] = r.nextInt(100); } } //对二维数组的每行进行快速排序 for(int i = 0;i maxRowValues[i] = arr2D[i][9]; } int[] arrRowAvg = new int[10]; //获取每行的平均值 for(int i = 0;i sum += arr2D[i][j]; } arrRowAvg[i] = sum/arr2D[i].length; } System.out.println("每行的最大值"); for(int i = 0; i System.out.print( arrRowAvg[i] + " "); } } /** * 对一维数组进行快速排序 * @param arr */ public static void QuitSort(int arr[],int low ,int high){ if(low int key = arr[low]; while(low high--; } arr[low] = arr[high]; while(low


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭