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

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章