java学习第五天2020/7/10
一.
今天继续学习算法;
1.
查找,一般我们采用的是顺序查找的方法,这种方法是比较简单,但是效率却很低;一般就是从第一个数开始与想要查找的那个数进行比较,当遇到相同的时候则就成功查找了;
另一种比较高效的方法就是使用二分法;
(1)使用这种方法首先要对元素进行排序;
(2)之后要确定元素的中间位置m;
(3)然后让要查询的数于中间的数进行比较,如果中间的数比要查询的数大,那么m-1变成最大值,否则让m+1变成最小值;
在这里给出一个二分法的例子:
package main函数;
import java.util.Scanner;
public class 二分法 {
public static void main(String[]args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入9个数:");
int[] m=new int[9];
for(int i=0;i<9;i++)
{
m[i] = input.nextInt();
}
int temp;
for(int i=0;i<m.length-1;i++)
for(int j=i+1;j<m.length;j++)
{
if(m[i]>m[j])
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
System.out.println("请输入要查找的数:");
int value=input.nextInt();
int cout=-1;
int low=0;
int high=m.length-1;
while(low<=high)
{
int mid=(low+high)/2;
if(m[mid]==value)
{
cout=mid;
break;
}
else if(m[mid]>value)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
if(cout!=-1)
System.out.println("下标在:"+cout+"位置");
else
System.out.println("没有找到"); } }

2.
java的一些工具类
(1)打印数组 toStrng方法打印数组
import java.util.Arrays;
int [] ary={元素.........}
System out.println(Arrays.toString(ary));
(2)sort方法排序 //升序
import java.util.Arrays;
import java.util.Arrays;
int [] ary={元素.........}
Arrays.sort(ary);
(3)二分查找
import java.util.Arrays;
binarySearch(int[] args,int key)
int [] ary={元素.........}
Arrays.sort(ary);
int index=Arrays.binarySearch(ary,查找的数);
(4)随机数
import java.util.Random;
产生随机数0-99
Random ran=new Random;
int a=ran.nextInt(100);
(5)输入
import java.util.Scanner;
Scanner input = new Scanner(System.in);
输入字符串:String name = input.next();
输入整形:int x = input.nextInt();
输入浮点型: double x = input.nextDouble();
输入字符型: char x = input.next().charAt(0);
二.今天没有遇到什么新问题
三.明天了解java 的面向对象
java学习第五天2020/7/10的更多相关文章
- 201671010140. 2016-2017-2 《Java程序设计》java学习第五周
java学习第五周心得体会 本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...
- java学习(五)
学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...
- 从.Net到Java学习第五篇——Spring Boot &&Profile &&Swagger2
从.Net到Java学习系列目录 刚学java不久,我有个疑问,为何用到的各种java开源jar包许多都是阿里巴巴的开源项目,为何几乎很少见百度和腾讯?不是说好的BAT吗? Spring Boot 的 ...
- Java学习笔记五:Java中常用的运算符
Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...
- Java学习笔记五——流程控制
分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...
- Java学习第五篇:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, ...
- 别样JAVA学习(五)继承上(1.0)Object类equals()
上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...
- JAVA学习第五十九课 — 网络编程概述
网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...
- java学习(五)Number类、Math类
Number类 顾名思义嘛,搞数字的,以前也用到过,就是相当于内置了一堆数字的类嘛,用哪种类型的就引用下这个包就好了呗 Integer.Long.Byte.Double.Float.Short都是Nu ...
随机推荐
- CSS里盒子模型中【margin垂直方向边界叠加】问题及解决方案
边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容.补白.边框)重合在一起而形成一个单一边界. 两个或多个块级盒子的垂直相邻边界会重合. 如果都是正边界,结果的边界宽度是 ...
- 分享一个springboot脚手架
项目介绍 在我们开发项目的时候各个项目之间总有一些可共用的代码或者配置,如果我们每新建一个项目就把代码复制粘贴再修改就显得很没有必要.于是我就做了一个 poseidon-boot-starter 该项 ...
- 关于UDP的检验和计算(附代码)
关于UDP的检验和计算(附代码) 在下午的学习过程中https://www.cnblogs.com/roccoshi/p/13032356.html 有一张图讲述了UDP的校验方法, 如下: 老师只粗 ...
- 说说硬件中核心板的作用和优缺点,基于i.MX8M Mini核心处理器平台
核心板,顾名思义,即硬件构成中关键的器件和电路打包封装的一块电子主板,具有布线复杂.多层.高频信号干扰.器件密度高等特性,大多数核心板集成了处理器.内存.存储器.电源管理和引脚,通过引脚与配套基板连接 ...
- macos的两个快捷键和一个小tip
学校的linux协会介绍了一个免费的light轻量级加速器,昨天晚上十点左右的时候着手研究,发现其实就是一个代理服务器.在配置这个代理服务器的时候碰到了一些困难并最终都解决了.下面记录一下配置过程学到 ...
- Spark3.0分布,Structured Streaming UI登场
近日,在Spark开源十周年之际,Spark3.0发布了,这个版本大家也是期盼已久.登录Spark官网,最新的版本已经是3.0.而且不出意外,对于Structured Streaming进行了再一次的 ...
- Github删除分支下所有提交记录
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 有时候,我们提交 ...
- 35 _ 队列1 _ 什么是队列.swf
队列是一种可以实现一个先进先出的存储结构 什么是队列? 队列(Queue)也是一种运算受限的线性表.它只允许在表的一端进行插入,而在另一端进行删除.允许删除的一端称为队头(front),允许插入的一端 ...
- SpringMVC 学习笔记(7)spring和springmvc的整合
58. 尚硅谷_佟刚_SpringMVC_Spring整合SpringMVC_解决方案.avi 解决办法让springmvc值扫描@Control控制层和@ControllerAdvice对应的异常处 ...
- mybatis缓存之一级缓存(一)
对于mybatis框架.仿佛工作中一直是在copy着使用.对于mybatis缓存.并没有一个准确的认知.趁着假期.学习下mybatis的缓存.这篇主要学习mybatis的一级缓存. 为什么使用缓存 其 ...