Java------数组使用及排序练习_有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并-程序员宅基地

技术标签: java  

1. 有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出。
2. 使用选择排序和冒泡排序对一自定义数组进行排序;
3. 先对数组{1,3,9,5,6,7,1,5,4,8}进行排序,然后二分查找法找出数组中的元素8,标出其排序后其下标的位置。
4.编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数
 

1.编写一个Array类,用于存放解决上述问题的函数

package com.bdsw.wxl.day2.homework;

import java.util.Random;
/**
 * 
 * @author 王雪亮
 * @date 2018年7月17日
 * @Description 存放数组相关的作业:
 *                  ①:数组逆序放置并输出
 *                  ②:使用冒泡和选择排序对数组进行排序
 *                  ③:二分查找元素下标
 *                  ④:统计100个随机数中0~9的个数
 *
 */
public class Array {

	/**
	 * 
	 *@function 数组逆序放置并输出
	 */
	public static void arrayRevert() {
		int a[]= {1,3,5,7,9,11,13,15,17,19};
		Util.bubbleSort(a);//逆序
		for (int i : a) {
			System.out.print(i+" ");
		}	
	}
	
	/**
	 * 
	 *@function 使用冒泡和选择排序对数组进行排序
	 */
	public static void useSort() {
		//1.初始化数组
		int a[] = new int[10];
		for (int i = 0; i < 10; i++) {
			Random r = new Random();
			a[i] = r.nextInt() % 10;
			if(a[i]<0) a[i]*=-1;
		}
		
		//2.通过选择从小到大排序
		Util.selectSort(a);
		
		//3.输出选择排序结果
		System.out.println("选择排序的结果为:");
		for (int i : a) {
			System.out.print(i+" ");
		}
		System.out.println();
		
		//4.通过冒泡从大到小排序
		Util.bubbleSort(a);
		
		//6.输出冒泡排序结果
		System.out.println("冒泡排序的结果为:");
		for (int i : a) {
			System.out.print(i + " ");
		}
		System.out.println();
	}
	
	/**
	 * 
	 *@function 二分查找元素下标
	 */
	public static void binFindGetPos() {
		int a[]= {1,3,9,5,6,7,1,5,4,8};
		//1.对数组进行排序
		Util.bubbleSort(a);
		
		//2.输出排序后的数组
		System.out.print("排序后的数组为:");
		for (int i : a) {
			System.out.print(i+" ");
		}
		System.out.println();
		
		//3.对8进行二分查找并输出
		Util.binFin(a,8);
	}
	
	/**
	 * 
	 * @function 自定义长度为100的数组,
	 *           用10以内的随机数赋值,
	 *           统计1~10内元素的个数
	 */
	public static void total()
	{
		//1.定义一个大小为100的数组a,并为其随机赋值(0~10范围内)
		int a[] = new int[100];
		for (int i = 0; i < 100; i++) {
			Random r = new Random();
			a[i] = r.nextInt() % 10;
			if(a[i]<0) a[i]*=-1;
		}
		
		//2.定义一个大小为11的数组b,用来存放0~10出现的个数,个数初始化为0
		int b[]=new int[10];
		for(int i=0;i<b.length;i++)
			b[i]=0;
		
		//3.遍历a中的每一个元素,
		//将b数组的下标同遍历a元素相等的数组元素的内容+1
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<b.length;j++)
			{
				if(a[i]==j) b[j]=b[j]+1;
			}
		}
		
		//4.打印各个数字出现的次数
		for(int i=0;i<b.length;i++)
			System.out.println(i+"出现"+b[i]+"次");
		
	}
}

2.编写一个工具类,用于存放两种排序方法和二分查找

package com.bdsw.wxl.day2.homework;

public class Util {
	/**
	 * 
	 *@function   二分查找
	 *@param a    传入的数组名
	 *@param key  查找的关键字
	 */
	public static void binFin(int[] a, int key) {
		int l=0;
		int r=a.length-1;
		while(l<=r)
		{
			int mid=(l+r)/2;
			if(a[mid]==key) {System.out.println("8的下标位于:"+mid);break;}
			else if(a[mid]>key) l=mid+1;
			else r=mid-1;
		}
	}
	
	/**
	 * 
	 * @function 选择排序(从小到大)
	 * @param a:需要排序的数组名
	 */
	public static void selectSort(int[] a) {
		int temp,i,j;
		for (i = 0; i < a.length - 1; i++) {
			
			for (j = i+1; j < a.length; j++) {
				if(a[i]>a[j]) {
					temp=a[j];
					a[j]=a[i];
					a[i]=temp;
				}
			}
		}
		
	}
	
	
	/**
	 * 
	 * @function 冒泡排序(从大到小)
	 * @param a:需要排序的数组名
	 */
	public static void bubbleSort(int[] a) {
		for (int i = 0; i < a.length - 1; i++) {
			int temp;
			for (int j = 0; j < a.length - 1 - i; j++) {
				if (a[j] < a[j + 1]) {
					temp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = temp;
				}
			}
		}
		
	}

}

3.编写测试类Main

package com.bdsw.wxl.day2.homework;

public class Main {
	public static void main(String[] args) {
		System.out.println("------1.字符串反转后的结果为:");
		Array.arrayRevert();
		System.out.println("\n\n------2.使用冒泡和选择进行排序:");
		Array.useSort();
		System.out.println("\n\n------3.二分查找元素下标:");
		Array.binFindGetPos();

	}
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34082113/article/details/81089514

智能推荐

k8s问题排错思路(问题:6443 was refused)-程序员宅基地

文章浏览阅读2.3w次,点赞5次,收藏9次。今天启动虚拟机的时候,在master敲入指令,提示错误,如下所示:kubectl get po The connection to the server apiserver.demo:6443 was refused - did you specify the right host or port?按照字面理解是,连接server apiserver.demo:6443被拒绝于是我..._6443 was refused

字符串基础知识总结_什么是字符串-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏13次。字符串什么是字符串字符串是由数字、字⺟、下划线组成的⼀串字符注意:单引号和双引号不能混合使⽤Python中⽤⼀对双引号或者⼀对单引号包裹的内容就是字符串转义字符转义字符是⼀种特殊的字符常量。转义字符以反斜线""开头,后跟⼀个或⼏个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符\t 表示制表符\n 表示换⾏符\ 表示反斜杠’ 表示 ’⻓字符串⻓字符串 ⼜叫做⽂档字符串 我们使⽤三重引号来表示⼀个⻓字符串’’’ ‘’’三重引号可以换⾏,并且会保留字符串中的格_什么是字符串

typeScript整理笔记_name: string; //这里会报错,因为不满足索引类型指定的返回值类型-程序员宅基地

文章浏览阅读226次,点赞2次,收藏2次。typeScriptTypeScript 并不是一个完全新的语言, 它是 JavaScript 的超集,为 JavaScript 的生态增加了类型机制,并最终将代码编译为纯粹的 JavaScript 代码。TypeScript 简介TypeScript 由 Microsoft(算上 Angular 2 的话加上 Google)开发和维护的一种开源编程语言。 它支持 JavaScript 的所有语法和语义,同时通过作为 ECMAScript 的超集来提供一些额外的功能,如类型检测和更丰富的语法。_name: string; //这里会报错,因为不满足索引类型指定的返回值类型

无法加载SQLite.Interop.dll:找不到指定模块-程序员宅基地

文章浏览阅读6.6k次。最近在使用SQLite数据库时,使用的是linq2db.SQLite框架,正常编译状态下未报任何错误,只是在项目打包的时候出现了错误,提示无法加载:“SQLite.Interop.dll”,找不到指定模块的问题,我们找到安装后的项目路径下缺失这个文件,解决方法倒是不难,吧对应版本的拷贝进去进行了。猜想可能是在安装linq2db.SQLite的时候没有将SQLite.Interop.dll生成到Debug目录下,尝试更新了linq2db.SQLite升级到4.0.0,但是也没有自动生成,并且安装时依然提示_sqlite.interop.dll

基于距离公式的三角模糊数TOPSIS多属性决策方法及matlab应用_三角模糊书topsis-程序员宅基地

文章浏览阅读2.7k次,点赞4次,收藏16次。上一篇使用三角模糊数去模糊的方法构建了TOPSIS多属性决策方法,这篇使用三角模糊数的距离公式构建TOPSIS多属性决策方法。1.模糊理想解与距离公式我们选择以下4种距离公式,度量各个方案与模糊理想解之问的分离程度,包括Euclidean距离、L2-metric距离、Dp,q距离、Hausdorff距离等。2.排序步骤与matlab程序基于TOPSIS法的三角模糊数型多属性决策问题的..._三角模糊书topsis

js严格模式_js export which has only a getter-程序员宅基地

文章浏览阅读392次。为什么使用严格模式?消除js语法的一些不合理、不严谨之处,减少一些怪异行为;1).消除代码运行的一下不安全之处,保证代码运行的安全;2).提高编译器效率,增加运行速度;3)为未来新版本的js做好铺垫。“严格模式”提现了js更合理、更安全、更严谨的发展方向,包括IE10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。另一方面,同样的代码,在“严禁模式”中,可能会..._js export which has only a getter

随便推点

lua socket_luasocket-2.0.2-程序员宅基地

文章浏览阅读2.2k次。LuaSocket 是 Lua 的网络模块库,它可以很方便地提供TCP、UDP、DNS、FTP、HTTP、SMTP、MIME 等多种网络协议的访问操作。它由两部分组成:一部分是用 C 写的核心,提供对 TCP 和 UDP 传输层的访问支持。另外一部分是用 Lua 写的,负责应用功能的网络接口处理。安装 LuaSocket如果你安装有 Lua 模块的安装和部署工具 -- Lu_luasocket-2.0.2

html type file 响应,把input type=file 上传文件的onchange调用方法参数用\"括起来后赋给div变乱而无响应...-程序员宅基地

文章浏览阅读1.1k次。用 input type=file 来上传文件需要借住 javascript 来完成,客户端的执行过程大概是这样:用户单击“浏览”选择待上传的文件后触发 input 的onchange事件,在onchange事件中调用一个方法,该方法负责把文件提交到服务器,由服务器来完成文件的上传。这种方法上传文件每上传一次后需要重写 input type=file,这就涉及到把 input type=file ..._input type file onchange

ModuleNotFoundError: No module named ‘win32con‘_modulenotfounderror: no module named 'win32com-程序员宅基地

文章浏览阅读3.5k次。Python在windows系统运行时,提示ModuleNotFoundError: No module named ‘win32con’。但是去很多地方都找不到这个包解决方案是:conda install scripyscipy 包中包含了win32con这个包,nice._modulenotfounderror: no module named 'win32com

python for下面的else执行流程是在上面的for执行完成后顺序执行的,除非上面的for循环中有break会导致跳过的情况,否则是执行了上面的for,再执行else_for ~ else语句的执行过程-程序员宅基地

文章浏览阅读349次。#resultt_class.type= <class 'torch.Tensor'>t_class= tensor([[ 3], [ 6], [ 9], [ 5], [ 5], [ 1], [ 2], [ 2], [ 0], [ 7], [ 1], [ 3], [ 3], [ .._for ~ else语句的执行过程

Apache Kafka-Spring Kafka生产消费@KafkaListener源码解析_spring kafka生产者源码-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏15次。文章目录概述概述#kafkaspring.kafka.bootstrap-servers=10.11.114.247:9092spring.kafka.producer.acks=1spring.kafka.producer.retries=3spring.kafka.producer.batch-size=16384spring.kafka.producer.buffer-memory=33554432spring.kafka.producer.key-serializer=org.a_spring kafka生产者源码

异步IO-数据库-队列-缓存10-程序员宅基地

文章浏览阅读252次。Python之路,Day10 - 异步IO\数据库\队列\缓存本节内容Gevent协程Select\Poll\Epoll异步IO与事件驱动Python连接Mysql数据库操作RabbitMQ队列Redis\Memcached缓存Paramiko SSHTwsited网络框架引子到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,..._缓存 队列 io

推荐文章

热门文章

相关标签