一 順序查詢
前提條件:無
從所傳入集合的一段開始,順序掃瞄,並以此將掃瞄到的值與所傳如德key值進行比較。若有值與其相等,則表明查詢成功;若掃瞄結束後仍沒有值與key值相等,則表明查詢失敗。
示例**:
public int seqsearch(int r, int k)
} return -1;
} 缺點:執行效率低
優點:實現方式簡單,比較容易好理解,對集合的資料結構沒什麼要求
二 二分查詢
前提條件:集合有序排列(遞增、遞減)
1 確定查詢範圍,獲取該區間的中間位置:middle=(low+high)/2
2 然後將待查的k值與r[mid]比較:若相等,則查詢成功並返回此位置,否則須確
定新的查詢區間,繼續二分查詢。
① 若r[mid] > k,則由陣列的有序性可知r[mid..n]均大於k,因此該結點必定是
在位置mid左邊的r[0..mid-1]中
② 若r[mid] < k,則要查詢的k必在mid的右邊的r[mid+1..n]中,下一次查詢是
針對新的查詢區間進行的。
3 因此,從初始的查詢區間r[1..n]開始,每經過一次與當前查詢區間的中點位置上的
結點關鍵字的比較,就可確定查詢是否成功,不成功則當前的查詢區間就縮小一半。
這一過程重複直至找到關鍵字為k的結點,或者直至當前的查詢區間為空(即查詢失
敗)時為止。
示例**:
public int dichotomymethod(int arrys,int keyvalue)else if(arrys[middle]
java常用排序演算法
一 選擇排序 public class numbersort private static void read string args private static void print int arrays system.out.println private static void select...
java常用排序演算法
氣泡排序演算法 public static void bubbsort int a 演算法思想 由陣列頭部開始,每次比較兩個元素,順序不滿足就進行交換,當前陣列最大值 最小值 會被放在最後。一趟排序完成,然後同樣的方法進行後面的比較。插入排序演算法 public static void inssor...
java常用排序演算法
1 氣泡排序 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法描述 實現 如下 fu...