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的主要内容,如果未能解决你的问题,请参考以下文章

Java学习第五天

java学习第五天

No_16_0224 Java基础学习第五天

Java基础学习第二十五天——多线程学习总结

JAVA学习第五天

学习Java的第五天