一.java
今天繼續學習算法;算法
1.數組
查找,通常咱們採用的是順序查找的方法,這種方法是比較簡單,可是效率卻很低;通常就是從第一個數開始與想要查找的那個數進行比較,當遇到相同的時候則就成功查找了;dom
另外一種比較高效的方法就是使用二分法;函數
(1)使用這種方法首先要對元素進行排序;工具
(2)以後要肯定元素的中間位置m;學習
(3)而後讓要查詢的數於中間的數進行比較,若是中間的數比要查詢的數大,那麼m-1變成最大值,不然讓m+1變成最小值;對象
在這裏給出一個二分法的例子:blog
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 的面向對象