• 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 的面向对象

  • 相关阅读:
    测分用例模板
    功能测试用例设计(24方法)
    pycharm
    Mac-peizhi
    基于Java BufferedImage实现识别图片中的黑色矩形
    Soap从入门到实战
    实列+JVM讲解类的实列化顺序
    基于Springboot的BaseService和BaseController
    Kendo-Grid for Vue API and Template
    web项目jsp中无法引入js问题
  • 原文地址:https://www.cnblogs.com/qiangini/p/13281923.html
Copyright © 2020-2023  润新知