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