摘要:前言本書當(dāng)中說了兩種搜索算法,篇幅都不大,因?yàn)槿诤狭酥暗闹R點(diǎn),所以看起來會相對簡單一,主要包括兩個(gè)內(nèi)容順序搜索二分搜索順序搜索從字面的意思來看,就是按照順序一個(gè)一個(gè)找下去的意思,直到找到為止。該搜索算法要求被搜索的數(shù)據(jù)結(jié)構(gòu)已排序。
前言
本書當(dāng)中說了兩種搜索算法,篇幅都不大,因?yàn)槿诤狭酥暗闹R點(diǎn),所以看起來會相對簡單一,主要包括兩個(gè)內(nèi)容:
順序搜索
二分搜索
順序搜索??從字面的意思來看,就是按照順序一個(gè)一個(gè)找下去的意思,直到找到為止。搜索的結(jié)果可以返回true、當(dāng)前索引、當(dāng)前值,否則返回false,-1,null等內(nèi)容,我們看如下一段代碼:
var sequentialSearch = function(item){ for (var i = 0;i??整體的思路就是遍歷數(shù)據(jù),然后把遍歷到的每項(xiàng)內(nèi)容,跟我們要查找的元素相比較,如果值相等就遍歷結(jié)束,使用 return 返回,否則在遍歷結(jié)束的時(shí)候返回其它內(nèi)容。
假定有如下數(shù)組,我們要在里面查找值為3的元素項(xiàng):[5,4,3,2,1]搜索的示意圖如下:
二分搜索??所謂的二分,就是把數(shù)據(jù)一分為二,首先選中一個(gè)中間值,如果中間值是需要查找的,那么返回該值,否則拿需要查找的值跟這個(gè)中間值比較,然后依次循環(huán)執(zhí)行這個(gè)步驟,直到找到為止。
該搜索算法要求被搜索的數(shù)據(jù)結(jié)構(gòu)已排序。選擇數(shù)組的中間值
如果中間值是待搜索值,那么算法執(zhí)行結(jié)束
如果待搜索的值比中間值小,則返回第一步,在選中值得左邊尋找
如果待搜索的值比中間值大,則返回第二步,在選中值得右邊尋找
代碼實(shí)現(xiàn):
let binarySearch = function(item){ // 因?yàn)橐笙扰判? quickSort(array); let low = 0, hight = array.length - 1, mid,element; while (low <= high){ mid = Math.floor((low + high) / 2); element = array[mid]; if(element < item){ low = mid + 1; }else if(element>item){ high = mid - 1; }else{ return mid; } } return -1; }一下是算法執(zhí)行的步驟示例圖:
這里的內(nèi)容大部分是書中摘抄的內(nèi)容,中間說到了快速排序,您可以查閱其它的資料去了解下,排序算法相關(guān)的內(nèi)容,JS常見的排序算法主要有,當(dāng)然我們這里也可以使用其它排序方法,比如:冒泡排序、選擇排序、插入排序、歸并排序等。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/95739.html
摘要:深度優(yōu)先搜索上一次已經(jīng)提到,圖的遍歷一般有兩種算法,即廣度優(yōu)先和深度優(yōu)先。用深度優(yōu)先搜索算法對圖中的任務(wù)圖進(jìn)行拓?fù)渑判蜃罱K各頂點(diǎn)的發(fā)現(xiàn)和探索完成時(shí)間會保存在中。 深度優(yōu)先搜索(DFS) 上一次已經(jīng)提到,圖的遍歷一般有兩種算法,即廣度優(yōu)先和深度優(yōu)先。其中深度優(yōu)先搜索算法會從第一個(gè)指定的頂點(diǎn)開始遍歷圖,沿著路徑直到這條路徑最后一個(gè)頂點(diǎn),接著原路回退并探索下一條路徑。換句話說,它是先深度后廣...
摘要:廣度優(yōu)先搜索上一次已經(jīng)提到,圖的遍歷一般有兩種算法,即廣度優(yōu)先和深度優(yōu)先。其中廣度優(yōu)先搜索算法會從指定的第一個(gè)頂點(diǎn)開始遍歷圖,先訪問其所有的相鄰點(diǎn),就像一次訪問圖的一層。其它最短路徑算法對于加權(quán)圖的最短路徑,廣度優(yōu)先算法可能并不合適。 廣度優(yōu)先搜索(BFS) 上一次已經(jīng)提到,圖的遍歷一般有兩種算法,即廣度優(yōu)先和深度優(yōu)先。其中廣度優(yōu)先搜索算法會從指定的第一個(gè)頂點(diǎn)開始遍歷圖,先訪問其所有的...
摘要:散列表上面的地圖向我們展示了如何用廣度優(yōu)先搜索的思想找到北京到廣州的最短路線。在廣度優(yōu)先搜索中,我們需要用到隊(duì)列的這種思想來實(shí)現(xiàn)查找。建立了下面這個(gè)模型武漢廣州西藏上海上海武漢廣州代碼完整實(shí)現(xiàn),利用遞歸和廣度優(yōu)先搜索的思想實(shí)現(xiàn)。 什么是廣度優(yōu)先搜索? 如果只是是背概念,幼兒園的小朋友都能背下來念給你聽。 假設(shè)看這篇文章的都和我一樣是個(gè)前端工程師,我們要從廣度優(yōu)先搜索(BFS)中學(xué)到什么...
閱讀 3007·2021-11-19 09:40
閱讀 4031·2021-10-09 09:43
閱讀 2762·2021-09-22 15:31
閱讀 1863·2021-07-30 15:31
閱讀 871·2019-08-30 15:55
閱讀 3342·2019-08-30 15:54
閱讀 1306·2019-08-30 11:26
閱讀 1995·2019-08-29 13:00