java学习第五天2020/7/10
Posted 小强哥in
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章