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 ...
随机推荐
- ODEINT 求解常微分方程(4)
import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # function tha ...
- [Linux之旅一] .NET Core 2.2部署到Docker中
第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图: 在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Doc ...
- (二)JPA实体类主键生成策略
在JPA中,配置实体类的主键的生成策略使用 @GeneratedValue @Id @Column(name = "id") @GeneratedValue(strategy = ...
- 附024.Kubernetes_v1.18.3高可用部署架构二
kubeadm介绍 kubeadm概述 参考<附003.Kubeadm部署Kubernetes>. kubeadm功能 参考<附003.Kubeadm部署Kubernetes> ...
- matplotlib浅析
首先放出matplotlib的中英文文档: 中文:https://www.matplotlib.org.cn/ 英文:https://matplotlib.org/3.1.1/index.html M ...
- android中获取其他应用的SharedPreferences
在android中获取其他应用的SharedPreferences,需要其他应用设置的Mode为MODE_WORLD_READABLE或者MODE_WORLD_WRITABLE两种模式.要获取其他应用 ...
- equals与hashCode的区别
equals与hashCode的区别 1.类中的equals方法是一定要重写/覆盖(Override)的,因为要让它按照设计的需求来根据特征值判断等价性. 这里的特征值,就是String类型的name ...
- Linux性能优化思路
性能测试的核心,就是找出性能瓶颈并进行性能优化,解决"慢"的问题,最终满足客户业务需求. [性能需求来源及性能问题现象] 性能需求的来源,主要分为以下几类: 项目组提出性能需求: ...
- Lucene5多条件查询
lucene是一个很强大的搜索工具,最近公司项目上用到,结合JAVA1234所讲,对多条件查询做出总结 先描述一下我的多条件需求,如果和您的类似,继续往下看. 1.我的Lucene搜索会在很多地方使用 ...
- idea的maven项目无法引入junit类
本机:java版本:1.8 pom中是junit版本:4.12 出现问题:在使用@Test 无法引入 : org.junit.Test; 解决方法:junit在pom.xml改为 4.12-beta- ...