二分查找算法實現思路及其代碼演示

一、什麼是二分查找?
打開百度查找一下,它會給你以下一段話:

二分查找也稱折半查找(BinarySearch),它是一種效率較高的查找方法。但是,折半查找要求線性表必須採用順序存儲結構,而且表中元素按關鍵字有序排列。

從這段話,我們可以得到一個非常有價值的消息:

二分查找只適用於有序排列序列

什麼意思呢?就是說你這個算法只能用於從大到小、或者從小到大排列好的有序序列。如果你存放數據的數組是無序的,那你首先還得給它排序一下。

二、二分查找算法的具體思路

首先如果我們有一個數組:
{1,8,10,89,1000,1214}

  1. 首先我們需要確認這個數組中間元素的數值。

    應該是 mid =(最左邊的元素下標+最右邊元素的下標)/ 2

  2. 這時候我們進行一個比較,如果 findVal > arr[mid] 那麼就說明,你需要的元素在中間元素的右邊,這時候你只需要向右遍歷就可以了。

  3. 如果 findVal < arr[mid] 那麼就說明,你需要的元素在中間元素的左邊,這時候你只需要向左遍歷就可以了。

  4. 如果findVal = arr[mid] 那麼就說明,你找到這個元素了。

那麼這時候可能就有人問,什麼時候我們退出遞歸呢?

  1. 找到你需要的元素就結束遞歸。
  2. 遞歸完整個數組,還沒有查找到目標元素,就要結束遞歸,當left > right 就需要進行退出。

整個思路流程相比其他算法,還是比較簡單的,那麼接下來我們就用代碼進行演示一下吧。

三、二分查找算法的代碼演示

在這裏插入圖片描述
二分查找的代碼實現如上圖所示~

邏輯相對來說,也不是很難~

大家一起加油呀~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章