实验六 数组、字符串

实验六

实验项目:实验六 数组、字符串(1)

实验时间:2019.4.20

一、实验目的

  1. 掌握数组的概念与用法
  2. 掌握异常处理的用法。
  3. 学习编写程序处理异常。

二、实验内容

必做
1、 编写类文件Sort.java,内含变量一维数组,其中有方法可以按升序及降序对一维整型数组元素进行排序,打印。
要求:可以用Java中的现成的排序方法,也要求自己写排序方法,不可以调用数组里的方法尝试着比较一下两种方法之间的性能。

源码:

package ex06;
/*
 * 1、	编写类文件Sort.java,内含变量一维数组,
 * 其中有方法可以按升序及降序对一维整型数组元素进行排序,打印。
要求:可以用Java中的现成的排序方法,也要求自己写排序方法,
不可以调用数组里的方法
尝试着比较一下两种方法之间的性能。

 */
import java.util.Arrays;

public class Sort {
	static int[] a  = {1,5,7,4,2,6,3};
public static void main(String[] args) {
		
		m1();//调用方法一(Java自带排序方法)进行排序
	
		System.out.println("---------------------------");//分割线
		
		m2();//调用方法二经行升序方法排序
		System.out.println("---------------------------");//分割线
		m3();//调用方法三进行降序方法排序
	}
	
	//方法一:
	public static void m1() {
		
		Arrays.sort(a);//java 中自带的排序方法
		
		for(int i : a) {
			System.out.println(i);
		}
		
	}
	
	//其他(方法二):升序
	public static void m2() {
	
		for(int i = 0 ; i < a.length-1;i++) {
			for(int j = i + 1;j < a.length;j++) {
				if(a[i]>a[j]) {
					int temp = a[i];
					a[i] = a[j];
					a[j]  = temp;
				}
			}
		}
		for(int k = 0 ; k < a.length;k++) {
			System.out.println(a[k]);
		}
	}
	//其他方法(方法二):降序
	public static void m3() {
		
		for(int i = 0 ; i < a.length-1;i++) {
			for(int j = i + 1;j < a.length;j++) {
				if(a[i]<a[j]) {
					int temp = a[i];//声明整形数值temp作为中间变量
					a[i] = a[j];
					a[j]  = temp;
				}
			}
		}
		for(int k = 0 ; k < a.length;k++) {
			System.out.println(a[k]);
		}
	}
}

运行结果:
在这里插入图片描述

比较:Java自带的的排序快速便捷,但是不能降序排序;自己写的排序方式逻辑严谨,简单易懂。

2、教材第四章课后习题第5或6题,必须完成一题;可两题都做
(尽量不要用结构化程序设计的思想即在主方法中完成功能)
提示:成员变量为数组,构造方法中队该数组进行初始化,即new。一个方法生成20个随机整数保存在数组中,另一个方法计算统计结果,一个方法输出。

源码:

package ex06;
/*
 * 书本第四章课后作业第5题
 */
import java.lang.Math;
//调用类
public class RandomTest {
	
	//public static double random();

	public static void main(String[] args) {  // 程序入口
		
		int[] a = new int[21];//声明一个int类型的数组
		
		for(int i = 0 ; i < 10000;i++) {
			//对下式运行10000次
			int b = (int)(Math.random()*20+0.5);
			//分别对应给数组a的下表对应元素赋值
			for (int j = 0;j < 21;j++) {
				if (b==j) {
					a[j] = a[j]+1;//当对应值相等时,a数组的对应下标的数组的值+1
					break;//节省运行时间
				}
			}
		}
		//将数组遍历
		for(int k = 0;k<21;k++) {
			System.out.println("生成的整数"+k+"共有"+a[k]+"个");
		}

	}

}

运行结果:
在这里插入图片描述

实验总结:加深对数组概念的了解以及使用方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值