iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0
自我挑戰組

透過JavaScript學習演算法與資料結構系列 第 13

二分搜尋(Binary Search)

  • 分享至 

  • xImage
  •  

首先這是一個由小排到大已經排序好的陣列,作法有點像是終極密碼的作法,不斷對這陣列做切分比大小,來達到快速搜尋。

先看這段影片
Yes

程式碼如下:

function binarySearch(arr,target,startIndex,endIndex){
  //Get the middle index first.
  let midIndex=Math.floor((startIndex+endIndex)/2);
  //if the middle value is equal to target return its index
  if(arr[midIndex]===target){
    return midIndex;
  }
  //If the middle value is bigger than target that neans the value is on the left side of the middle vlue. 
  else if(arr[midIndex]>target){
    return binarySearch(arr,target,startIndex,midIndex-1);
  }
  //If the middle value is smaller than target that means the value is on the right side of the middle value.
  else{
    return binarySearch(arr,target,midIndex+1,endIndex);
  }
}

const arr=[0,1,2,3,4,5,6,7,8,9];
const target=7;

const index=binarySearch(arr,target,0,arr.length-1);
console.log(index)

程式碼


上一篇
線性搜尋(Linear Search)
下一篇
二元搜尋樹(Binary Search Tree)
系列文
透過JavaScript學習演算法與資料結構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言