zoukankan      html  css  js  c++  java
  • 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 的面向对象

  • 相关阅读:
    VMWare 桥接模式
    什么是交叉编译,为什么要使用交叉编译
    最常用的四种大数据分析方法
    C#的Dispose模式复习
    Oracle Data Provider for .NET Support for Microsoft .NET Core
    微软发布了量子计算开发包
    关于Oracle分区表的理解
    html 中video标签视频不自动播放的问题
    input 修改placeholder颜色
    正则表达式 手机号验证、邮箱验证、6~16位数字加字母组合、身份证号码验证
  • 原文地址:https://www.cnblogs.com/qiangini/p/13281923.html
Copyright © 2011-2022 走看看