一.
今天繼續學習演算法;
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 的物件導向