• <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>

            focus on linux, c/c++, lua

            幾個(gè)重要的數(shù)據(jù)結(jié)構(gòu)概念

            可以自己去實(shí)現(xiàn)這幾個(gè)數(shù)據(jù)結(jié)構(gòu)類型,來提高自己的編程能力。

                  接觸堆數(shù)據(jù)結(jié)構(gòu)是在排序里面講的,空間復(fù)雜度O(1),時(shí)間復(fù)雜度O(NlogN),但是在實(shí)踐中還是不如快速排序(好像快速排序可以更好的利用硬件特性)。堆的意義就在于:最快的找到最大/最小值,在堆結(jié)構(gòu)中插入一個(gè)值重新構(gòu)造堆結(jié)構(gòu),取走最大/最下值后重新構(gòu)造堆結(jié)構(gòu) 其時(shí)間復(fù)雜度為O(logN),而其他方法最少為O(N).堆實(shí)踐中用途不在于排序,其主要用在調(diào)度算法中,比如優(yōu)先級(jí)調(diào)度,每次取優(yōu)先級(jí)最高的,時(shí)間驅(qū)動(dòng),取時(shí)間最小/等待最長的 等等 ,分為最大堆/最小堆。
              哈希表主要可以在O(1)時(shí)間內(nèi)對查找對象定位,但是事實(shí)上,如果輸入集合不確定的情況下,可能出現(xiàn)大量的沖突,雖然有很多好的哈希函數(shù),但是隨著隨機(jī)輸入,大量沖突還是不可避免,可能出現(xiàn)最差情況。所以,哈希表如果用在輸入集合確定(即以后只會(huì)做查詢操作)的情況下,選擇合適的函數(shù)函數(shù)和解決沖突的方法(perfect hash)可以在O(1)時(shí)間內(nèi)完成查找(有證明,看不懂)。
              二叉樹支持動(dòng)態(tài)的插入和查找,保證操作在O(height)時(shí)間,這就是完成了哈希表不便完成的工作,動(dòng)態(tài)性。但是二叉樹有可能出現(xiàn)worst-case,如果輸入序列已經(jīng)排序,則時(shí)間復(fù)雜度為O(N)
              平衡二叉樹/紅黑樹就是為了將查找的時(shí)間復(fù)雜度保證在O(logN)范圍內(nèi)。
              所以如果輸入結(jié)合確定,所需要的就是查詢,則可以考慮使用哈希表,如果輸入集合不確定,則考慮使用平衡二叉樹/紅黑樹,保證達(dá)到最大效率。


            posted on 2010-10-20 10:26 zuhd 閱讀(312) 評論(0)  編輯 收藏 引用 所屬分類: c/c++

            中文字幕热久久久久久久| 97久久精品人人做人人爽| 久久人人爽人人爽人人av东京热| 国内精品伊人久久久久妇| 国产精品久久波多野结衣| 91精品国产综合久久精品| 国产成人99久久亚洲综合精品| 天天做夜夜做久久做狠狠| 久久精品亚洲精品国产色婷| 久久国产成人| 国产精品美女久久久久久2018| 国产精品女同一区二区久久| 蜜臀久久99精品久久久久久小说| 久久综合色区| 亚洲综合久久综合激情久久| 久久精品一区二区三区AV| 久久涩综合| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产99久久无毒不卡| 精品久久人人妻人人做精品| 国产精品美女久久久久久2018| 香蕉久久夜色精品国产2020| 精品久久久久中文字| 久久er国产精品免费观看2| 久久久SS麻豆欧美国产日韩| 亚洲欧美日韩久久精品| 精品乱码久久久久久夜夜嗨| 日韩久久久久久中文人妻| 久久午夜综合久久| 狠狠色伊人久久精品综合网| 精品熟女少妇av免费久久| 99久久无色码中文字幕人妻| 中文成人无码精品久久久不卡 | 久久国产色AV免费观看| 国产一区二区久久久| 一本久久精品一区二区| 亚洲伊人久久成综合人影院| 免费一级做a爰片久久毛片潮| 精品久久久久中文字| 亚洲成av人片不卡无码久久| 日韩美女18网站久久精品|