• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 183,  comments - 10,  trackbacks - 0

            單鏈表的訪問改進(jìn)

            我們知道單鏈表的插入和刪除的時(shí)間復(fù)雜度是 O(1)
            但是其訪問的時(shí)間復(fù)雜度是 O(N),不能實(shí)現(xiàn)隨機(jī)訪問。

            而順序表是隨機(jī)訪問的,插入和刪除的時(shí)間復(fù)雜度是 O(N)

            針對(duì)單鏈表的訪問弊端,如何改進(jìn)單鏈表數(shù)據(jù)結(jié)構(gòu),使得訪問的效率有所提升?

            每種數(shù)據(jù)結(jié)構(gòu)都有各自的優(yōu)劣以及適用情況。

            這里有幾種方案,其實(shí)不能算在方案吧,而是采用其他數(shù)據(jù)結(jié)構(gòu)替換的策略。

            第一種方案
            采用平衡二叉樹,插入、刪除、訪問的復(fù)雜度都是 O(logN)
            或者紅黑樹,插入、刪除、訪問的時(shí)間復(fù)雜度都是 O(logN)
            STL 中的 set、map 可以完成該功能。

            第二種方案
            采用分段的策略
            針對(duì)每個(gè)節(jié)點(diǎn)的值,根據(jù)值進(jìn)行分段,段數(shù)視具體情況而定。
            插入和刪除的時(shí)間復(fù)雜度保持不變,還是 O(1)
            訪問的時(shí)間復(fù)雜度變?yōu)?O(N / 段的數(shù)目)
            這種方式訪問的時(shí)間復(fù)雜度得到一定的改進(jìn),但是是常數(shù)級(jí)的。
            這種策略實(shí)質(zhì)上是哈希。
            哈希函數(shù)為除法函數(shù)。
            例如有 0 1 2 3 4 5 6 7 8 9 十個(gè)數(shù),可以分為兩段,0 - 4 為第一段,5 - 9 為第二段。
            訪問一個(gè)數(shù)時(shí),首先計(jì)算其所在的段,m / 5,得到所在段的首地址,然后去遍歷訪問。

            第三種方案
            采用線索二叉樹
            線索二叉樹將二叉樹線索化,二叉樹可以想鏈表那樣操作。插入和刪除的時(shí)間復(fù)雜度都是 O(1)。
            訪問按照二叉樹的方式,這時(shí)二叉樹是平衡二叉樹,訪問的時(shí)間復(fù)雜度是 O(logN)。

            幾種方案的比較
                            插入和刪除   訪問
            單鏈表              O(1)    O(N)
            平衡二叉樹    O(logN)    O(logN)
            分段                 O(1)    O(N / 段的數(shù)目)
            線索二叉樹         O(1)    O(logN)

            總結(jié)
            這幾種方案,與其說是改進(jìn),不如說是更換另一種數(shù)據(jù)結(jié)構(gòu)。

            另外哈希方式,最好在存在大量數(shù)據(jù)的情況下使用,否則會(huì)浪費(fèi)空間,因?yàn)楣1砗艽蟆?/p>

            針對(duì)單鏈表訪問效率的改進(jìn),另一個(gè)角度是采用輔助性數(shù)據(jù)結(jié)構(gòu),記錄一些信息,以方便快速地訪問。

            posted on 2011-09-13 20:54 unixfy 閱讀(755) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            性欧美丰满熟妇XXXX性久久久| 国产精品久久久久9999| 久久笫一福利免费导航| 伊人久久大香线蕉av不卡| 久久久精品人妻一区二区三区四| 欧美精品一区二区精品久久| 久久婷婷五月综合成人D啪| 久久久久国产精品熟女影院| 国产真实乱对白精彩久久| 日本欧美久久久久免费播放网| 97精品国产97久久久久久免费 | 久久AⅤ人妻少妇嫩草影院| 久久久久亚洲AV无码观看| 精品久久久久久无码人妻热| 久久国产精品99精品国产| 一级女性全黄久久生活片免费| 国产精品女同久久久久电影院| 国产精品99久久久精品无码| 九九久久精品无码专区| 久久精品嫩草影院| 国产一久久香蕉国产线看观看 | 国产精品无码久久四虎| 精品国产一区二区三区久久久狼| 伊人久久精品影院| 日韩中文久久| 日本高清无卡码一区二区久久| 国产精品欧美久久久久无广告| 国产91久久精品一区二区| 久久久婷婷五月亚洲97号色| 亚洲色欲久久久综合网东京热| 无码乱码观看精品久久| 免费精品国产日韩热久久| 亚洲AⅤ优女AV综合久久久| 亚洲国产精品嫩草影院久久 | 精品熟女少妇av免费久久| 日韩人妻无码一区二区三区久久99| 热RE99久久精品国产66热| 女人高潮久久久叫人喷水| 色狠狠久久AV五月综合| 久久精品www人人爽人人| 国产精品久久久久aaaa|