第七章 查詢 二分查詢

2021-10-05 18:37:27 字數 979 閱讀 5411

#include

#include

using

namespace std;

intbin_search

(int a,

int n,

int k)

else

if(a[mid]

else

}return0;

}int

main()

int k,ad;

cin>>k;

ad=bin_search

(a,n,k)

; cout

}

注 :

有些**的low初始化為0=1,high初始化為n,mid=(low+high)/2。其實和上述**原理是一致的,最終都會輸出所查詢元素在陣列中的位置,但會造成陣列越界。

我們舉個栗子,假如我們陣列是,我們從中查詢元素1.

根據我們上述**

第一次 low=1 high=2 mid=(1+2)/2=1 (二分查詢向下取整)

key=1<a[mid]即a[1]=3

第二次 low=1 high=0 mid=(1+0)/2=0 ,此時就輸出return 0 了。但實質上,遺漏了a[0]

為什麼low<=high,而不是low我們舉個栗子,假如我們陣列是,我們從中查詢元素1.

根據我們上述**

第一次 low=0 high=1 mid=(0+1+1)/2=1 (二分查詢向下取整)

key=1<a[mid]即a[1]=3

第二次 low=0 high=0 mid=(0)/2=0

key=1=a[mid]即a[0]=1(找到了)

但是如果條件是low

第七章 查詢

1 在雜湊表中,所謂同義詞就是具有相同雜湊位址的兩個元素。2分 f 我覺得本題應該是錯的 首先應該兩個不同元素,然後是得到同一雜湊位址 2 即使把2個元素雜湊到有100個單元的表中,仍然有可能發生衝突。2分 t 本題主要是考察雜湊 hash 函式是可以改變的,衝突的選擇是根據函式的選取 3 將m個元...

第七章 查詢

第七章 查詢 一 查詢的基本概念有 1 查詢表 2 關鍵字 3 查詢 4 動態查詢表和靜態查詢表 5 平均查詢長度 二 線性表的查詢 1 順序查詢 1 資料型別定義 typedef keytype int 這個根據具體情況去定義 在這裡定義為int typedef struct elemtype t...

第七章 查詢技術

第7章 查詢技術 學習重點 折半查詢的過程及效能分析 二叉排序樹的插入 刪除和查詢操作 平衡二叉樹的調整方法 雜湊表的構造和查詢方法 各種查詢技術的時間效能及對比。學習難點 二叉排序樹的刪除操作 平衡二叉樹的調整方法 閉雜湊表的刪除演算法。7.1 概述 7.11 查詢的基本概念 在查詢問題中,通常將...