折返查詢發(半分查詢)

2021-08-21 08:14:50 字數 460 閱讀 6908

半分查詢法是在有序陣列中查詢效率很高的方法。

半分方法有倆種,各有優缺點。

int _find(int x)

return r;

}

此方法是左開右閉,查詢的所有相等的會放在右邊,

最後返回與查詢數相等的元素下標最小的那個。

如果查詢的數比陣列中所有數都大

會返回 陣列最大下標+1;

但是如果比所有數都小,那麼會返回最小下標,需要

重新比較arr[0]與x大小。

int _find(int x)

return l;

}

這種是左閉右開,所有與查詢值相等的都會出現在左邊,最後返回下表最大的元素。

如果數比陣列中所有數都大,會返回最大下標,需要重新判斷arr[n]與x大小。

如果查詢數比所有數都小,那麼會返回-1。

二分發查詢

演算法 當資料量很大適宜採用該方法。採用二分法查詢時,資料需是排好序的。基本思想 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段 中查詢 若x大於當前位置值則在數列的後半段中繼續查詢,直到找到為止。二分法查詢在...

查詢 靜態查詢 順序查詢

查詢表 1 查詢某個 特定的 資料元素是否在查詢表中 2 檢索某個 特定的 資料元素的各種屬性 3 在查詢表中插入乙個資料元素 4 從查詢表中刪去某個資料元素 靜態查詢 1 2 動態查詢 1 2 3 4 順序查詢 儲存結構和查詢操作 與 順序表基本相同 o n include include usi...

查詢 多表查詢。。。

此時你得使用鏈結條件。通過存在於相對應列中的公共值,乙個表中的資料可以被另乙個表的資料鏈結,通常都是主鍵和外來鍵進行鏈結。一般鏈結條件寫在where子句裡。select empno,emp.deptno,loc from emp,dept where emp.deptno dept.deptno 對...