1. 程式人生 > 實用技巧 >java學習第五天2020/7/10

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 的面向物件