導航:首頁 > 源碼編譯 > 設計二分法檢索演算法的主要技術是

設計二分法檢索演算法的主要技術是

發布時間:2022-12-26 22:25:31

⑴ 二分法查找的演算法

假如有一組數為3,12,24,36,55,68,75,88要查給定的值24.可設三個變數front,mid,end分別指向數據的上界,中間和下界,mid=(front+end)/2.
1.開始令front=0(指向3),end=7(指向88),則mid=3(指向36)。因為mid>x,故應在前半段中查找。
2.令新的end=mid-1=2,而front=0不變,則新的mid=1。此時x>mid,故確定應在後半段中查找。
3.令新的front=mid+1=2,而end=2不變,則新的mid=2,此時a[mid]=x,查找成功。
如果要查找的數不是數列中的數,例如x=25,當第三次判斷時,x>a[mid],按以上規律,令front=mid+1,即front=3,出現front>end的情況,表示查找不成功。
例:在有序的有N個元素的數組中查找用戶輸進去的數據x。
演算法如下:
1.確定查找范圍front=0,end=N-1,計算中項mid=(front+end)/2。
2.若a[mid]=x或front>=end,則結束查找;否則,向下繼續。
3.若a[mid]<x,說明待查找的元素值只可能在比中項元素大的范圍內,則把mid+1的值賦給front,並重新計算mid,轉去執行步驟2;若a[mid]>x,說明待查找的元素值只可能在比中項元素小的范圍內,則把mid-1的值賦給end,並重新計算mid,轉去執行步驟2。
[一維數組,折半查找]

⑵ 二分查找演算法

二分查找演算法,該演算法要求線性表必須採用順序存儲結構,而且表中元素按關鍵字有序排列。如果一個序列是無序的或者是鏈表,那麼該序列就不能使用二分查找。

二分查找演算法原理:若待查序列為空,則返回-1,並退出演算法;若待查序列不為空,則將它的中間元素與目標數值進行比較,判斷是否相等;若相等,則返回中間元素索引,並退出演算法;此時已查找成功。若不相等,則比較中間元素與目標數值的大小。

二分查找的一個技巧是:不要出現else,而是把所有情況用else,if寫清楚,這樣可以清楚地展現所有細節。本文都會使用else,if,旨在講清楚,讀者理解後可自行簡化。

⑶ 二分搜索演算法是利用什麼實現的演算法

二分搜索演算法是利用排除剩餘元素中一半的元素實現的演算法。

在計算機科學中,二分搜索(英語:binary search),也稱折半搜索(英語:half-interval search)、對數搜索(英語:logarithmic search),是一種在有序數組中查找某一特定元素的搜索演算法。

二分搜索演算法原理:

1、如果待查序列為空,那麼就返回-1,並退出演算法;這表示查找不到目標元素。如果待查序列不為空,則將它的中間元素與要查找的目標元素進行匹配,看它們是否相等。如果相等,則返回該中間元素的索引,並退出演算法;此時就查找成功了。如果不相等,就再比較這兩個元素的大小。

2、如果該中間元素大於目標元素,那麼就將當前序列的前半部分作為新的待查序列;這是因為後半部分的所有元素都大於目標元素,它們全都被排除了。

3、如果該中間元素小於目標元素,那麼就將當前序列的後半部分作為新的待查序列;這是因為前半部分的所有元素都小於目標元素,它們全都被排除了。

⑷ 二分法的演算法步驟是什麼

在有序的有N個元素的數組中查找用戶輸進去的數據x。

演算法如下:

1、確定查找范圍front=0,end=N-1,計算中項mid=(front+end)/2。

2、若a[mid]=x或front>=end,則結束查找;否則,向下繼續。

3.、若a[mid]<x,說明待查找的元素值只可能在比中項元素大的范圍內,則把mid+1的值賦給front,並重新計算mid,轉去執行步驟2;若a[mid]>x,說明待查找的元素值只可能在比中項元素小的范圍內,則把mid-1的值賦給end,並重新計算mid,轉去執行步驟2。

(4)設計二分法檢索演算法的主要技術是擴展閱讀

基本思想:假設數據是按升序排序的,對於給定值key,從序列的中間位置k開始比較,

如果當前位置arr[k]值等於key,則查找成功;

若key小於當前位置值arr[k],則在數列的前半段中查找,arr[low,mid-1];

若key大於當前位置值arr[k],則在數列的後半段中繼續查找arr[mid+1,high],

直到找到為止,時間復雜度:O(log(n))。

閱讀全文

與設計二分法檢索演算法的主要技術是相關的資料

熱點內容
閩政通無法請求伺服器是什麼 瀏覽:48
怎麼做積木解壓神器 瀏覽:203
王者榮耀解壓玩具抽獎 瀏覽:49
12位是由啥加密的 瀏覽:868
程序員編迷你世界代碼 瀏覽:895
php取現在時間 瀏覽:246
單片機高吸收 瀏覽:427
怎麼區分五代頭是不是加密噴頭 瀏覽:244
hunt測試伺服器是什麼意思 瀏覽:510
2013程序員考試 瀏覽:641
畢業論文是pdf 瀏覽:736
伺服器跑網心雲劃算嗎 瀏覽:471
單片機定時器計數初值的計算公式 瀏覽:801
win7控制台命令 瀏覽:567
貓咪成年app怎麼升級 瀏覽:692
360有沒有加密軟體 瀏覽:315
清除cisco交換機配置命令 瀏覽:751
華為刪除交換機配置命令 瀏覽:473
shell打包命令 瀏覽:827
加密狗插上輸不了密碼 瀏覽:187