Search

Search

利用排序的方法實現滿足不同條件的查找

本文主要介紹以下幾種查找方法。

  1. 線性表的查找
  2. 二叉樹的插入生成及查找
  3. B樹的插入生成及查找
  4. 散列函數的構造及查找

1.線性表的查找

主要分為順序查找,二分,分塊三種。

順序查找

二分查找

package search;

public class BinarySearch {
    boolean binarySearch(int[] a,int value){
        int left=0;
        int right=a.length-1;
        int middle;
        while(left<right){
            middle=(left+right)/2;
            if(value<a[middle]){
                right=middle-1;
            }else if(value>a[middle]){
                left=middle+1;
            }else{
                System.out.println(middle);
                return true;
            }
        }
        return false;
    }
}

分塊查找

2.二叉排序樹

二分查找是適用于靜態查找表。若要對動態查找表進行高效率的查找,最好使用二叉排序樹。

代碼:

http://www.cnblogs.com/skywang12345/p/3576452.html

3.B樹

4.散列

碰撞處理方法:

  • 開放地址
  • 拉鏈
  • 差值
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容