Binary Search

二元搜寻BigO(log n)

  • 相较於线性搜寻时间复杂度实在好太多
  • 必须是被排序好的
  • 由於每次对半砍,所以为log n

点我看GIF

let array1 = [1,3,5,7,9,11,13,15,17,19,21]

function BinarySearch(array, n){
    let min = 0
    let max = array.length -1 

    while(array[min] <= array[max]){ //当array的前一项比後项小即成立
        let middile = Math.floor((min + max) / 2) //为了对半middle 为中间的index

        if(array[middile] > n){ //如果array[middle] > n 代表是在miidle的左半边,即把范围所小到当前middle的位置-1
            max = middile - 1
        }else if(array[middile] < n ){
            min = middile + 1
        }else{ //否则回传middle
            console.log(`Found number index:${middile}`)
            return middile
        }
    }return "Error"
}
BinarySearch(array1, 5) //Found number index:2

<<:  Linear Search

>>:  用函式来传达你的心意> 0 <

【Day7】试着用JSX在页面上渲染出Table吧٩(๑❛ᴗ❛๑)۶

前面在第四篇的时候有稍微说明JSX是什麽东西和有什麽优点, 这一篇我们要来试着使用JSX 在Reac...

Day28_CSS语法11

border-radius(框线圆角) border-top-left-radius : 左上角显示...

ESP32_DAY1 前言

哈罗大家,今天过得好吗? 我是谁 5401J,你可以只记得 EJ,aka.台科好味、台科理科(都是...

Day 1- AI 初探

前言:这个系列文着重在AI的全貌,基於时间,希望在未来学习过程中可以更深入每个题目。 AI 历史 最...

[Day11] 文本/词表示方式(二)-BOW与TFIDF

一. BOW BOW的全名为Bag-of-words,中文是'一袋文字',意思就是将词都丢进一个袋子...