一.

今天继续学习算法;

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的更多相关文章

  1. 201671010140. 2016-2017-2 《Java程序设计》java学习第五周

    java学习第五周心得体会        本周,是Java学习第五周,随着时间推移,随着课本内容的推进,我们接触到的程序也开始变得越来越复杂,不再是二三章那些用来练手的小程序了,这一点,在我们的例题运 ...

  2. java学习(五)

    学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...

  3. 从.Net到Java学习第五篇——Spring Boot &&Profile &&Swagger2

    从.Net到Java学习系列目录 刚学java不久,我有个疑问,为何用到的各种java开源jar包许多都是阿里巴巴的开源项目,为何几乎很少见百度和腾讯?不是说好的BAT吗? Spring Boot 的 ...

  4. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  5. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  6. Java学习第五篇:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题

    一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, ...

  7. 别样JAVA学习(五)继承上(1.0)Object类equals()

    上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...

  8. JAVA学习第五十九课 — 网络编程概述

    网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...

  9. java学习(五)Number类、Math类

    Number类 顾名思义嘛,搞数字的,以前也用到过,就是相当于内置了一堆数字的类嘛,用哪种类型的就引用下这个包就好了呗 Integer.Long.Byte.Double.Float.Short都是Nu ...

随机推荐

  1. pytorch入门2.1构建回归模型初体验(模型构建)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  2. linux pinmux 引脚多路复用驱动分析与使用

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

  3. javascript 面向对象学习(一)——构造函数

    最近在学习设计模式,找了很多资料也没有看懂,看到怀疑智商,怀疑人生,思来想去还是把锅甩到基础不够扎实上.虽然原型继承.闭包.构造函数也都有学习过,但理解得不够透彻,影响到后续提高.这次重新开始学习,一 ...

  4. 分享我在前后端分离项目中Gitlab-CI的经验

    长话短说,今天分享我为前后端分离项目搭建Gitlab CI/CD流程的一些额外经验. Before Gitlab-ci是Gitlab提供的CI/CD特性,结合Gitlab简单友好的配置界面,能愉悦的在 ...

  5. 一行代码让你的python运行速度提高100倍

    转自:https://www.cnblogs.com/xihuineng/p/10630116.html 加上之后运行速度快了十倍,我的天呐. python一直被病垢运行速度太慢,但是实际上pytho ...

  6. Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值

    首先简介梯度法的原理.首先一个实值函数$R^{n} \rightarrow R$的梯度方向是函数值上升最快的方向.梯度的反方向显然是函数值下降的最快方向,这就是机器学习里梯度下降法的基本原理.但是运筹 ...

  7. 04.开发REST 接口

    使用Django开发REST 接口 我们以在Django框架中使用的图书英雄案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发. 在此案例中,前后端均发送JSON格式 ...

  8. C语言宏技巧 X宏

    前言 本文介绍下X宏的使用 首先简单介绍下宏的几种用法 #define STRCAT(X,Y) X##Y #define _STR(X) #@X #define STR(X) #X #define L ...

  9. C#数据结构与算法系列(十):逆波兰计算器——逆波兰表达式(后缀表达式)

    1.介绍 后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后 2.举例说明 (3+4)*5-6对应的后缀表达式就是3 4 +5 * 6 - 3.示例 输入一个逆波兰表达式(后缀表达 ...

  10. Docker Dockerfile 指令详解与实战案例

    Dockerfile介绍及常用指令,包括FROM,RUN,还提及了 COPY,ADD,EXPOSE,WORKDIR等,其实 Dockerfile 功能很强大,它提供了十多个指令. Dockerfile ...