亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

javascript數(shù)據(jù)結(jié)構(gòu)與算法——搜索算法

TZLLOG / 1207人閱讀

摘要:前言本書當(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

相關(guān)文章

  • 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)算法 — 深度優(yōu)先搜索算法

    摘要:深度優(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),接著原路回退并探索下一條路徑。換句話說,它是先深度后廣...

    李增田 評論0 收藏0
  • 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)算法 — 廣度優(yōu)先搜索算法

    摘要:廣度優(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)開始遍歷圖,先訪問其所有的...

    eternalshallow 評論0 收藏0
  • 算法系列——JavaScript中廣度優(yōu)先搜索思想實(shí)現(xià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é)到什么...

    everfly 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<