




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章查找9.1靜態(tài)查找表
9.2動態(tài)查找表
9.3哈希表(散列表和查找)
第9章查找1、查找表——也叫檢索,是由同一類型的數(shù)據(jù)元素(或記錄)構成的集合。由于“集合”中的數(shù)據(jù)元素之間存在完全松散的關系,因此查找表是一種非常靈便的數(shù)據(jù)結構。2、查找表的操作查找某個“特定”的數(shù)據(jù)元素是否在查找表中;檢索某個“特定”的數(shù)據(jù)元素的各種屬性;在查找表中插入一個數(shù)據(jù)元素;從查找表中刪除某個數(shù)據(jù)元素。3、靜態(tài)查找表、動態(tài)查找表若對查找表只作前兩種統(tǒng)稱為“查找”的操作,則此類查找為靜態(tài)查找表。若在查找過程中同時插入查找表中不存在的數(shù)據(jù)元素,或從查找表中刪除已存在的某個數(shù)據(jù)元素,則稱此類表為動態(tài)查找表。4、關鍵字、次關鍵字關鍵字:是數(shù)據(jù)元素(或記錄)中某個數(shù)據(jù)項的值,用它可以標識(識別)一個數(shù)據(jù)元素(或記錄)。若此關鍵字可以唯一地標識一個記錄,則稱此關鍵字為主關鍵字。反之,則稱此關鍵字為次關鍵字。第9章查找5、查找根據(jù)給定的某個值,在查找表中確定一個其關鍵字等于給定值的記錄或數(shù)據(jù)元素。若表中存在這樣的一個記錄,則稱查找是成功的,此時查找的結果為給出整個記錄的信息,或指示該記錄在查找表中的位置;6、查找方法評價查找速度、占用存儲空間多少、算法本身復雜程度平均查找長度ASL(AverageSearchLength):為確定記錄在表中的位置,需和給定值進行比較的關鍵字的個數(shù)的期望值叫查找算法的平均查找長度。若表中不存在關鍵字等于給定值的記錄,則稱查找不成功。此時查找的結果可給出一個“空”記錄或“空”指針。第9章查找i例01234567891011513192137566475808892找6464監(jiān)視哨iiii比較次數(shù)=5比較次數(shù):查找第n個元素:1查找第n-1個元素:29.1靜態(tài)查找表一、順序表的查找(順序查找)1、順序查找從表中最后一個記錄開始,逐個進行記錄的關鍵字和給定值的比較,若某個記錄的關鍵字和給定值比較相等,則查找成功,找到所查找記錄;反之,若直至第一個記錄,其關鍵字和給定值比較都不等,則表明表中沒有所查記錄,查找不成功。查找第1個元素:n查找第i個元素:n+1-i查找失敗:n+12、查找操作的性能分析對于含有n個記錄的表,查找成功時的平均查找長度為:其中:n為表長,Pi為查找表中第i個記錄的概率,且,Ci為找到該記錄時,曾和給定值比較過的關鍵字的個數(shù)。從順序查找的過程可見,Ci取決于所查找記錄在表中的位置。查找表中最后一個記錄是,僅需比較一次,而查找表中第一個記錄時,則需比較n次。一般情況下Ci等于n-i+1。ASL=nP1+(n-1)P2++2Pn-1+Pn從上式可知,在不等概率查找的情況下,ASLss在Pn≥Pn-1≥···≥P2≥P1時取極小值。應對記錄的查找概率進行排序,使表中記錄按查找概率由小到大重新排列,以便提高查找效率。查找概率無法事先測定,則查找過程采取的改進辦法是,在每次查找之后,將剛剛查找到的記錄直接移至表尾的位置上。順序查找的缺點是平均查找長度較大,特別是當n很大時,查找效率低。然而,它有很大的優(yōu)點是:算法簡單且適應面廣。當查找不成功時的情形不忽視時,查找算法的平均查找長度應是查找成功時的平均查找長度與查找不成功時的平均查找長度之和。對于順序查找,不論給定值key為何值,查找不成功時和給定值進行比較的關鍵字個數(shù)均為n+1。假設查找成功與不成功的可能性相同,對每個記錄的查找概率也相等,則,此時順序查找的平均查找長度為:一、順序表的查找(順序查找)1、折半查找折半查找的查找過程是:先確定待查記錄所在的范圍(區(qū)間),然后逐步縮小范圍直到找到或找不到該記錄為止。每次將待查記錄所在區(qū)間縮小一半。二、有序表的查找(折半查找)算法實現(xiàn):假設表長為n,low、high和mid分別指向待查元素所在區(qū)間的上界、下界和中點,k為給定值,初始時,令low=1,high=n,mid=(low+high)/2讓k與mid指向的記錄比較若k==r[mid].key,查找成功若k<r[mid].key,則high=mid-1若k>r[mid].key,則low=mid+1重復上述操作,直至low>high時,查找失敗。lowhighmid例1234567891011513192137566475808892找211234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhighmid例如汗:已淹知如紙下11個數(shù)擇據(jù)元諸素的自有序約表(05,13,19,21,37,56,64,75,80,88,92),累現(xiàn)要輝查找乳關鍵兩字為21和70的數(shù)利據(jù)元打素。1、折鈔半查策找例1234567891011513192137566475808892lowhighmid找701234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhighmid1234567891011513192137566475808892lowhigh2、折霉半查聯(lián)找的老性能佳分析上述11個元溝素的毫表的慰具體開例子灰。每配一個痕的比驕較次研數(shù)。這個舊查找逝過程瓦可用盜圖8.耐1所示障的二惕叉樹冊來描碎述。剛樹中帖每個趴結點資表示乏表中矛一個脖記錄類,結紡點中定的值悟為該鞠記錄線在表和中的崗位置肌,通交常稱驕這個活描述立查找混過程姑的二叉爆樹為鞏判定船樹。81121074193651234567891011513192137566475808892從判棋定樹滲上可吼見,鋒查21的過訊程恰哪好是僅走了禁一條膠從根呼到結驗點(4)的掌路徑射,和給材定值卻進行扎比較扭的關酸鍵字刑個數(shù)腥為該壓路徑循上的驗結點什數(shù)或席結點4在判藍定樹吹上的護層次東數(shù)。二分蔑法查推找在笛查找巡壽成功牧時進閣行比愈較的偽關鍵魂字個尼數(shù)最繳多不凳超過柿樹的取深度跡,而符具有n個結殺點的軌判定聯(lián)樹的微深度攪為lo草g2n炒+1。所逝以折車半查史找法貨在查命找成家功時窩和給聽定值購進行紗比較殊的關鉆鍵字屠個數(shù)齊至多皂為lo枯g2n掙+1對于贊任意掌的n,當n較大絹(n>廁50時)雜,可庫有下摘列近嫂似結令果:可見螞,折春半查痰找的改效率汁比順菜序查化找高克,但紙折半老查找瓜只適話用于行有序辱表,慶且限死于順亡序存虎儲結觀構。樹中產層數(shù)薪為1的結半點有1個,父層數(shù)夫為2的結億點有2個,寶層數(shù)川為h的結僑點有2h-蹈1個。任假設娘表中圣每個呀記錄庸的查控找概塵率鐵,康則查吊找成證功時倡折半焦查找鳳的平絨均查寫找長掙度為適:12345678910111213141516171822121389203342443824486058745786532248861713索引表查38三、孩索引蔬順序破表的駕查找繭(分玻塊查枯找)若以扯索引釀順序屬表表貴示靜倍態(tài)查和找表林,則se壟ar仗ch函數(shù)湯可用設分塊蚊查找斜來實驅現(xiàn)。分塊肯查找蛙又稱液索引殖順序寸查找,這蘆是順恒序查慰找的踏一種音改進妖方法訪。在困此查襪找法病中,課除表遇本身漫以外億,尚停需要劍建立煩一個浸“索巴引表同”。據(jù)例如追:下啟圖所府示為飲一個幼表及裝其索元引表背,表注中含搬有18個記混錄,售可分繁成三夸個子隸表(R1,R2,…,R6)、貓(R7,R8,…,R12)、蘋(R13,R14,…,R18)。分塊閃查找林方法所謂滔“分骨塊有椅序”冬指的踏是第2個子廁表中叔所有記記錄昆的關驕鍵字找均大臺于第1子表滿中的閣最大美關鍵臭字,腿第3子表辟中的寇所有士關鍵膚字均查大于康第2字表盜中的垮最大爽關鍵雀字,卸依次托類推際,分別快查際找過沈程需眉分兩佩步進希行。吃先確施定待此查記行錄所優(yōu)在的順塊(定子表弱),樣然后校在塊醬中順雄序查擋找。此時喝的平那均查湖找長楚度不茫僅和勿表長堤有關西,而囑且和標每一波塊中璃的記排錄個校數(shù)s有關柴。分塊蒸查找唐的平囑均長勝度為飯:AS哲Lb栽S=唱Lb+Lw其中Lb為查爆找索昏引表鄰確定削所在嬸塊的岸平均把查找懷長度傭,Lw為在送塊中講查找舒元素魯?shù)钠骄志榻嫡议L泛度。三、含索引使順序桌表的威查找展(分檔塊查桑找)順序查找二分法查找分塊查找ASL最大最小兩者之間表結構有序表無序表有序表分塊有序表存儲結構順序存儲結構線性鏈表順序存儲結構順序存儲結構線性鏈表查找逮方法堡的比候較9.筆2動態(tài)聲查找線表動態(tài)競查找文表的賺特點妻:表結臣構本輔身是容在查歪找過壘程中釀動態(tài)罷地生邀成的較,即論對于奸給定丑值ke布y,若搬表中損存在撐其關賢鍵字竟等于ke透y的記鍵錄,勉則查次找成彎功返價回,聞否則準插入啄關鍵析字等損于ke圈y的記槽錄。一、繳二叉慣樹排量序樹寧及其耽查找阿過程1、什睬么是彈二叉丟排序靈樹?二叉搞排序亮樹或父是一句棵空屆樹;雁或是期具有利下列籍性質總的二幼叉樹溪:(1)若蕉它的費左子經(jīng)樹不寧空,句則左悼子樹慈上所烤有結違點的憶值均綱小于酸它的平根結繪點的歲值;(2)若跟它的恰右子疫樹不握空,脆則右想子樹哈上所弟有結凱點的盼值均樂大于擦或等恒于它逐的根杠結點支的值揉;(3)它剖的左盲、右碗子樹牙也分抹別為致二叉?zhèn)髋判蚩鏄?。一、火二叉粘樹排本序樹姥及其壤查找檢過程2、查每找過餡程90782410061373531245例如考右圖飛所示控為二預叉排拜序樹債。若二城叉排甘序樹付為空蘋,則規(guī)查找禮不成蹈功;醉否則(1)若聰給定曬值等轉于根名結點獅的關考鍵字始,則備查找神成功腔;(2)若芳給定天值小竊于根莖結點窮的關美鍵字家,則植繼續(xù)剛在左輪子樹木上進醉行查泳找;(3)若扮給定聞值大天于根閃結點鄰的關釀鍵字苦,則拍繼續(xù)位在右臥子樹屑上進弦行查蘿找。查找例過程拋舉例備:10狂0、4090782410061373531245一、昆二叉景樹排犬序樹功及其欺查找軍過程二、準二叉石排序送樹的距插入框與刪鉆除1、二邊叉排已序樹鏟的插玩入二叉樣排序焰樹是刺一種訂動態(tài)廳樹表濾。其性特點親是:摩樹的影結構青通常男不是獻一次嬌生成黎的,塘而是悲在查復找過疾程中廢,當樹塑中不攜存在旬關鍵覺字等侵于給炒定值代的結較點時潔再進飽行插淹入。新淚插入養(yǎng)的結犯點一押定是課一個陪新添存加的嗽葉子廁結點級,并走且是擱查找愚不成茫功時師,查欄找路嗓徑上忙訪問響的最步后一侵個結低點的翅左孩涼子或誘右孩哪子結秋點。舉例歸:若流從空濱樹出倘發(fā),炮經(jīng)過堤一系術列的廳查找鋪插入出操作殿之后主,可諷生成欺一棵妥二叉孫樹??ㄔO查袖找的炸關鍵酸字序竄列為{4和5,24,53,45,12,24,90偵},則砌生成茂的二韻叉排謝序樹煮。二芹叉排恥序樹貼生成蟻:從草空樹漏出發(fā)闊,經(jīng)例過一幼系列碼的查員找、預插入享操作塔之后芬,可眾生成爐一棵出二叉而排序更樹。中序些遍歷習二叉圖樹可冒得到圣一個礙關鍵設字的顧有序昨序列嚇。即撒,一斷個無怕序序憤列可售以通罷過構浴造一答棵二醉叉排曉序樹蜻而變昨成一專個有并序序肥列,棄構造咐樹的懶過程帆即為虧對無摘序序亦列進添行排消序的馳過程尤。每次薄插入熄的新袖的結蛋點都剝是二墻叉排荷序樹德上新苦的葉止子結東點,霉則在離進行棋插入有操作免時,蠢不必剩移動表其它矮記錄疊,僅窯需要腎改動夸某個脂結點溪的指哭針,譽由空嘩變?yōu)橛薹强帐纯山?。這真就相扭當于洲在一角個有敬序序笨列上繞插入攤一個誕記錄最而不附需要家移動迎其它悔記錄輛。表罪明:二叉遭排序坡樹既喬擁有辱類似趨折半新查找懇的特件性,振又采哥用了塑鏈表滴作存橋儲結壯構,基因此治是動慈態(tài)查魄找表色的一呆種適桶宜表歪示。24455312901、二硬叉排企序樹屢的插甩入2、二板叉排真序樹懶的刪毯除對于振一般厚的二柿叉樹濁來說道,刪扮除樹置中一肝個結衫點是拉沒有距意義洋的。驚然而抗,對是于二姥叉排鳴序樹曾,刪役去樹奶上一諸個結擴點相臺當于毅刪去譜有序附序列棵中的休一個桿記錄裝,只蠢要在政刪除燈某個抽結點談之后峽,依詳舊保煎持二律叉排圖序樹匯的特宮性即邊可。(1)拐*P為葉狼子結客點如何倦在二骨叉排擁序樹稅上刪趕去一壁個結富點呢慰?假偶設在脖二叉杠排序激樹上茶被刪礙結點惑為*P,其火雙親掉結點嘉為*F,且劍不失厘一般歇性,處可設趙*P是*F的左鼠孩子錘。要蠻刪除輩二叉拼排序胖樹中誤的P結點輝,分棗三種串情況厚:即PL和PR均為描空樹環(huán)。由緒于刪將去葉削子結旅點不舉破壞蔥整棵獨樹的練結構抹,則只需要修改頓其P雙親F的指術針F-汗>l脊ch音il論d=泳NU伏LL或F-籍>r愧ch樸il言d=避NU德LL。SQPLP中序遍歷:QSPLPSQPL中序遍歷:QSPL(2)SPPLQ中序遍歷:PLPSQSPLQ中序遍歷:PLSQ(1)(2)未*P只有柄左子泳樹PL或右沙子樹PR此時委只要收令PL或PR直接序成為制其雙兄親結趟點*F的左船子樹匹即可馬,顯遠然,聯(lián)作此逢修改敲也不辯破壞幟二叉繡樹的緞特性緒。中序遍歷:PPRSQSPRQ中序遍歷:PRSQ(3)SPPRQ中序遍歷:QSPPRSQPR中序遍歷:QSPR(4)SQPRP(2)帝*P只有敢左子繡樹PL或右侮子樹PR(3)今*P左、盡右子稅樹均磚非空FPCPRCLQQLSSL中序遍歷:CLC……QLQSL
SPPRFFSCPRCLQQLSL中序遍歷:CLC……QLQSLSPRF(5)在刪企除*P之前亦,中袖序遍肅歷二犯叉樹裙得到笑的序均列為{…午…C蹄LC摔QL攝QSLSPPRF…季…},刪繁除*P之后寄,為攻保持勇其它銳元素拋之間奸的相片對位扇置不葛變,鉛可以如有兩鞭種:享其裙一是添令*P的直眠接前狐驅(恥或直所接后嶺繼)怪替代軍*P,然略后再判從二卸叉排鑼序樹析中刪團去它牛的直腿接前煩驅(礦或直忽接后僻繼)芬,如龜下圖趕所示壩。其二渾是令訪*P的左燭子樹恥為*F的左怎子樹懷,而棋*P的右舅子樹判為*S的右溫子樹歌,如碎下圖梅所示耕。FPCPRCLQQLSSL中序遍歷:CLC……QLQSL
SPPRFFCPRCLQQLSL中序遍歷:CLC……QLQSL
SPRF(5)S刪除沙算法例805012060110150557053刪除508060120110150557053刪除60805512011015053701042581354刪除1084255134刪除58425413三、花二叉夾排序慰樹的僅查找捎分析二分者法查刑找長撿度為n的表移的判套定樹敏是唯節(jié)一的禁,而梳含有n個結掀點的在二叉額排序征樹卻用不是各唯一戴的。甘由關稍鍵字策序列{4貍5,批24核,5箏3,鞭12抹,3沿7,吃93廣}構造至而得趙的二音叉排犬序樹(a刻),455393243712a241237455393bAS當L稼=(1+播2+媽2+師3+巡壽3+褲3)/收6安=存14鳥/6由關沿鍵字伴序列{1裁2,菊24賣,3判7,夠45瞎,5令3,題93鳳}構造熔而得芝的二共叉排序序樹AS出L屯=(1+產2+拐3+懲4+炎5+休6)/6禮=2歡1/汽6因此幕,含有n個結桂點的毒二叉倍排序邀樹的中平均士查找逗長度礙和樹丸的形越態(tài)有冶關。當監(jiān)先后雨插的也關鍵嗚字有搏序時貧,構幼成的徑二叉陶排序銷樹蠕續(xù)變?yōu)槿粏沃О稑?。也樹的濱深度次為n,其擴平均浮查找棟長度支為(n+慶1)/2,和局順序址查找為相同膨,這即是最曾差的滾情況棒,顯剖然,槳最好帶的情頌況是攔二叉丟排序庭樹的庸形態(tài)競和二筑分法展查找構的判北定樹梯相同大,其吧平均密查找煌長度使和lo閘g2n成正鉛比。匠那么佩,它叉的平露均性呈能如花何?由此兔可見驢,在易隨機倉的情顫況下素,二枯叉排狀序樹心的平余均查摸找長顫度和lo們g益n是等杜數(shù)量掩級的段。然館而,歡在某他些情宴況下是(有供人研風究證船明,葉這種事情況或出現(xiàn)罩的概竊率約勻為46默.5牧%)。肥尚需悉在構翁成二番叉排厚序樹責的過綢程中遞進行用“平晃衡化摧處理麗”,顯成為業(yè)二叉淹平衡醒樹。三、裂二叉待排序宏樹的炊查找可分析四、跟平衡清二叉級樹1、平默衡二議叉樹平衡棗二叉怖樹,害它或感者是述一棵建空樹沖,或股者是北具有灶下列趟性質座的二雨叉排駕序樹描:它曉的左料子樹犯和右印子樹叫都是步平衡湯二叉喜樹,蒼且左掠子樹文和右到子樹裂高度含之差涌的絕慚對值往不超攔過1。若將殖二叉紐奉樹上動結點仇的平龜衡因倚子BF泥(B螺al賠an疊ce禁F蠢ac莖to控r)定義麻為該賭結點翅的左途子樹貧的深遼度減倉去它埋的右帽子樹浸的深涌度,醫(yī)則平槳衡二叛叉樹京上所辛有結敞點的籮平衡環(huán)因子棉只可味能是-1,0,1。只革要二陜叉樹信上有堅一個述結點鍵的平意衡因粱子的夢絕對戒值大找于1,則職這棵波樹就乖不是疫平衡嫁二叉存樹。平衡妹二叉剩樹的皆優(yōu)點痛:它的晶平均幫查找羅長度冷和lo旗gN同數(shù)香量級身。1、平渡衡二貢叉樹1100平衡步二叉農樹不平膛衡二宜叉樹0100-11-10100-120100-20-1構造銳二叉秧平衡憑(查北找)乓樹的壇方法準是:爬在插答入過捉程中藥,采鋸用平將衡旋磁轉技柔術。例如:依次虧插入忌的關杰鍵字值為5,王4耳,尸2,側8故,散6,醬95424258665842向右訪旋轉一次先向去右旋第轉再向騰左旋律轉2、如狀何使騎二叉潔排序炒樹成畏為平那衡二鄭叉樹426589426895向左歪旋轉嚴一次繼續(xù)跨插入側關鍵政字9二叉彎樹的爹平衡娘處理喇調整突的規(guī)攔律可刺歸納稀為下驚列四近種情城況1B2ABLhARh-1BRh-1插入結點0A0BBLBRARLL(1)單談向右概旋平臟衡處現(xiàn)理透由慶于在段結點億*a的左局子樹波根結擁點的女左子扶樹上雕插入浙結點草,*a的平藥衡因扮子由1增加宜到2,致兵使以騎*a為根治結點犬的子幅樹失級去平鄭衡,簡則需吉要進掉行一魚次向方右的蘭順時翻針旋扒轉操胡作,堤如圖革所示躺。中序耍遍歷咸:BLB霞BRA士AR(2)單效向左燙旋平圍衡處鄙理-1B-2ABRhALh-1插入結點RR0A0BALBLBRBLh-1由于釣在*a的右撤子樹六根結兼點的舊右子江樹上弊插入尊結點弊,*a的平百衡因浙子由-1變?yōu)?2,致也使以茫*a為根復結點光的子底樹失誦去平丙衡,蒼則需坊要進蹲行一留次向面左的匹逆時企針旋料轉操煩作,亞如圖道所示魚。中序屆遍歷鴉:ALA刊BLB貧BR(3)雙透向旋丘轉(秤先左芝后右江)平省衡處礙理-1B2ACLh-1ARh-1h-1BL插入結點0B0CBLCLCRLRAR-1A1Ch-2CR中序邁遍歷獸:B嫩CLC鍋CRA吊AR由于愚在*a的左場子樹猶根結企點的紹右子沾樹上督插入步結點輕,*a的平廢衡因保子由1增加靜到2,致董使以懂*a為根究結點薪的子趟樹失率去平邁衡,散則需季要進尺行兩殘次旋之轉(逆先左咳旋后弄右旋兩)操勾作,勿如圖桿所示戲。(4)雙鉛向旋絮轉(究先右件后左刊)平虹衡處護理-1B-2ACLh-1h-1AL插入結點0A0CALCLCRRLBR-1B1CBRh-1CRh-2中序繭遍歷寸:ALACLCCRBBR由于薯在*a的右挎子樹灣根結罵點的腸左子走樹上惠插入剃結點權,*a的平停衡因嫁子由-1增加清到-2,致訴使以灑*a為根濃結點算的子暈樹失史去平選衡,邀則需嶺要進奸行兩壘次旋延轉(朱先右憶旋后枝左旋跟)操害作,勝如圖米所示然。3、在持平衡好樹的些二叉畫排序歌樹BB泳S上插爪入一蠶個新練的數(shù)醋據(jù)元友素(1)若BB休ST為空站樹,終則插溜入一舒?zhèn)€數(shù)嗎據(jù)元寄素為e的新儀結點乓作為BB物ST的根賀結點森,樹確的深歇度加1;(2)若e的關貪鍵字賢和BB傲ST的根奧結點皇的關煎鍵字蛙相等早時,元則不雞進行核插入押;(3)若e的關皂鍵字溉小于BB也ST的根腰結點刪的關病鍵字笛,而哄且在BB哪ST的左哭子樹鉗中不贊存在婚和e相同轟關鍵飲字的鎮(zhèn)結點殼,則椅插入起在BB比ST的左燦子樹炎上,戲并且米當插令入之斬后的透左子杜樹深決度增愁加(+1)時決,分幸別就沈不同苦情況熄處理金之。*B文BS惑T的根格節(jié)點散的平澤衡因齊子為1(左稱子樹闊的深渡度大啞于右臟子樹骨的深掃度)過:*B琴BS譯T的根抽節(jié)點然的平捎衡因加子為-1(右愚子樹琴的深跳度大礦于左揀子樹戚的深拿度)賴:則宅將根析結點品的平匆衡因如子更區(qū)改為0,BB偷ST的深嘩度不淋變;*B牲BS眉T的根懼節(jié)點本的平晚衡因啊子為0(左側、右內子樹幻玉的深烏度相字等)思:則照將根困結點傘的平迫衡因認子更媽改為1,BB勞ST的深向度加1;若BB露ST的左填子樹黨根結繪點的味平衡廟因子面為-1,則姻需進番行先辛向左候、后密向右魄的雙敘向旋垂轉平睡衡處完理,各并且壩在旋師轉處蠻理之供后,莖修改耽根結導點和品其左奸、右記子樹踐根結別點的扯平衡萬因子根,樹祝的深秘度不有變。若BB骨ST的左艘子樹天根節(jié)酸點的職平衡弦因子羽為1,則威需要窩進行災單向帶右旋長平衡首處理霧,并美且在獄右旋痰處理翠之后木,將煙根結吃點和砍其右觀子樹稍根結脆點的俘平衡店因子謹更改惹為0,樹裝的深排度不輪變(4)若e的關遣鍵字獵大于BB釘ST的根不結點尸的關慮鍵字母,而跌且在BB躲ST的右票子樹忠中不堪存在叉和e有相咬同關警鍵字編的結敘點,液則將e插入校在BB圾ST的右各子樹步上,壞并且迅當插秤入之申后的歐右子疾樹深厚度增裂加(+1)時影,分玻別就陵不同院情況蹲處理強之。窯其處鞏理操爹作和龜(3)中旱所述輝相對愧稱。理想般的情吐況是攪希望四不經(jīng)夫過任喂何比晝較,盈一次堤存取尼便能醉得到蕩所查仔記錄挽,那濱就是柴必須刪在記擾錄的削存儲屯位置部和它訊的關崗鍵字命之間眠建立器一個蠶確定脫的對犁應關矛系f,使托每個跳關鍵擁字和臺結構事中唯沾一的升存儲陪位置泉相對川應。董因而認在查術找時比,只映要根李據(jù)這目個對漁應關薦系f找到?jīng)Q給定日值k的像f(垂k)。我國們稱這個桃對應醫(yī)關系f(晶k)為哈場希函墨數(shù),惑按照潑這個腫思想奇建立是的表儀為哈哨希表盟。9.肆3哈希確表(總散列猛表和時查找琴)編號地區(qū)號總人口漢族回族….1北京假設刃要建埋立一伏張全濃國30個地污區(qū)的臭各民煎族人分口統(tǒng)壓計表幼。顯然割,可麥以用杠一個紙一維右數(shù)組C(1:30)來菜存放乒這張欣表,厘其中C[點i]是編療號為i地區(qū)乳的人蛾口情普況。粥編號i便為矛記錄旬的關蛾鍵字弊,由錦它唯路一確國定記把錄的挎存儲遼位置C[綠i]。Keybeijing北京tianjin天津Hebei河北shanxi山西Shanghai
上海Shandong山東henan河南sichuan四川f1(key)0220081919190819f2(key)0904172828262203f3(key)0426021323171616為了洞查找與方便防應以淺地區(qū)伙名作船為關撿鍵字腫。假禽設地座區(qū)名齊以漢奏語拼惕音的掠字符作表示鞠,則運不能燦簡單扛地取兔哈希帥函數(shù)湊,而樸是首教先要知將它乏們轉認化為玻數(shù)字頭。(1)取蕩關鍵封字的肺第一勝個字山母在舍字母計表中蘋的序掛號作慌為哈托希函朱數(shù);(2)先徒求關胳鍵字瓦的第烤一個駛和最疤后一甜個字薦母在眼字母匙表中逝的序粒號之跑和,酒然后遷判別先這個卻值。貓若比30大,般則減承去30。(3)先微求每蜘個漢衡字的占第一補個拼凍音字藏母的AS菊CI厚I碼之謊和的位八進季制形效式,翠然后褲將這暖個八瞎進制貞數(shù)看擊成是沫十進敏制再匙除以30取余決數(shù)。(1)哈括希函暑數(shù)只擦是一片種映誘象,蜻所以冊哈希遮函數(shù)鹿的設廚定很豆靈活餓,只塌要使萬任何贈關鍵鐘字的嗚哈希劫函數(shù)敞值都朝落在繳表長司允許研的范額圍之欣內即聯(lián)可。(2)對磁于不凍同的松關鍵恩字可愛能得歷到同感一哈折希地株址,號即ke遷y1口k遼ey兼2,但h(惡ke首y1嶼)=瘡h(槐ke木y2軟),這拖種現(xiàn)未象叫沖突。在一尤般情康況下堡,沖突刊只能遼盡可幅能地件少,描而不臉能完堪全避推免。9.杜3哈希稿表(少散列替表和鋪查找敘)具有臟相同憶函數(shù)首值的切兩個寒關鍵醋字對認該哈文希函型數(shù)來章說稱敘做同程義詞。根據(jù)蜘設定攝的哈巷希函也數(shù)和雖處理推沖突高的方亮法將一組乓關鍵束字映摔象到蛛一個姻有限靜的連原續(xù)的腰地址壯集(徑區(qū)間然)上,9.濟3哈希足表(華散列圍表和閘查找妻)這一浸映象伐過程昆稱為哈希輸表或稅散列,所得擱到存和儲位嗓置稱哈希芳地址歸或散辨列地騙址。并以鵲關鍵紐奉字在順地址棄集中性的“堡象”運作為嬌記錄踏在表唯中的刑存儲京位置,這惡種情鄰況便仰稱為哈希帝表,二、紗哈希近函數(shù)槍的構開造方添法若對劃于關騙鍵字縮慧集合抄中的炕任一斬關鍵形字,污經(jīng)哈乘希函貸數(shù)映撇象到根地址提集合鞭中任祖何一鳴個地仔址的紅概率欺是相賭同的晴,則仰此類蝴哈希笑函數(shù)刊為均艷勻的折哈希水函數(shù)握。直接利定址魄法數(shù)字暢分析彼法平方甩取中突法折疊抄法除留喊余數(shù)懶法1、直炊接定是址法取關乘鍵字雁或關蜜鍵字茅的某羞個線曬性函臺數(shù)作種哈希暗地址巧,即h(皺ke響y)栽=k互ey或h(沾ke寶y)男=a炮·k宰ey弓+b地址01020325年齡12325人數(shù)3000200050001050例如載:有儀一個天從1歲到10凍0歲的鋤人口震數(shù)字晉統(tǒng)計妖表,職年齡席作為游關鍵攔字,芽哈希波函數(shù)宅取關牧鍵字稀自身蝴。又如鞏:有籃一個榨解放長后出泉生的嗓人口萍調查臟表,忙關鍵車字是新年份均,哈尿希函辱數(shù)取考關鍵丑字加腦一常往數(shù):h(貪ke寇y)=k纖ey或+(陸-1牧94謊8)地址010203….22年份194919501951…1970人數(shù)…15000這樣茶,若圖要查19旋70年出財生的惰人數(shù)略,則瞎只要西查(19歷70桐-1愈94齡8)=2濫2項即糕可。將由于級直接流定址呢所得嗚地址裕集合競和關跨鍵字左集合鉗的大汁小相井同,鄰因此膠不會墓發(fā)生械沖突互,但實弦際中膚能使碰用這約種哈溉希函釀數(shù)的絡情況免很少制。1、直暖接定么址法2、數(shù)榴字分郊析法當鍵梢值的悠位數(shù)之比存激儲區(qū)抱域地案址碼吉位數(shù)闊多時語,可乖以對鬼鍵值殖的各妖位進慮行分紐奉析,住去掉破分布艙不均捉勻的斗位,南留下寄分布銹均勻乖的位副作為筐地址努。所蹈選取裕的位導數(shù)和央散列稈地址考的位手數(shù)相曲同。蚊取哪逆兩位外?原員則是檔使得綁到的躲哈希側地址車盡量謠避免股產生解沖突昏。8134653281372242813874228130136781322817813389678136853781419355…..…..
只取8只取1只取3、4只取2、7、5數(shù)字分布近乎隨機取任意兩位或兩位與另兩位的疊加作哈希地址3、平絕方取在中法記錄關鍵字(關鍵字)2哈希地址(217~29)A01000010000010I11001210000210J12001440000440I011601370400370P120614310541310通常吹在選王定哈攝希函掩數(shù)時疲不一斑定能本知道宵關鍵暢字的貝全部鵝情況顧,取評其中凝哪幾焦位也潮不一鑄定合妹適,改而一巧個數(shù)現(xiàn)平方資后的繞中間蛋幾位愉數(shù)和因數(shù)的植每一寒位都瞎相關籮,由迷此使詳隨機飽分布惕的關探鍵字略得到搶的哈款希地士址也摟是隨擾機的話。取形的位犯數(shù)由紐奉表長徑?jīng)Q定譯。厚例如堪:為BA浪SI芬C源程烘序中爸的標部識符4、折盟疊法將關炸鍵字譽分割財成位昨數(shù)相憲同的賴幾部壓分(童最后霜一部霞分的筑位數(shù)蹤蝶可以議不同爐),踏然后晴取這慮幾部灰分的草疊加豬和(洽舍去螞進位瘋)作鞏為哈掃希地務址。墾這方獄法稱痕為折贈疊法油。關沿鍵字干位數(shù)奇很多艇,而納且關缺鍵字遷中每哲一位勾上數(shù)唉字分斤布大奸致均諒勻時雙,可頑以采沖用折蘿疊法尋得到徐哈希遷地址吧。例暑關鍵疤字為要:04彩42野20唐58艱64,哈攪希地懇址位民數(shù)為4586442200410088H(key)=0088移位疊加5864022404
6092H(key)=6092間界疊加移位局疊加:將休分割能后的散幾部容分低粥位對千齊相嶄加適于瓜關鍵袍字位潔數(shù)很甜多,某且每踢一位漆上數(shù)什字分麥布大考致均營勻情社況間界惡疊加:從貨一端仆沿分悼割界循來回游折送感,然螞后對貓齊相墾加取關漁鍵字蠅被某慘個不遍大于紡哈希尿表表哥長m的數(shù)p除后減所得銷余數(shù)噴作哈臟希地濾址,總即5、除薄留余稍數(shù)法關鍵字28356377105哈希地址7140140P=錘21特點丙:簡單赤、常兵用,塘可與薦上述田幾種導方法堵結合浮使用輩,p的選愈取很窯重要酸;p選的保不好伸,容杏易產如生同辯義詞傷。H(細ke娛y)碼=k階ey巖M澡OD附p,p巡壽m隨機株數(shù)法像構造:選不擇一律個隨崖機函占數(shù),捧取關膨鍵字槽的隨院機函中數(shù)值湊為它厘的哈疑希地擱址,檢即H(勞ke俯y)輔=r滾an踏do集m(績ke厘y),其然中ra駛nd緊om響(k鹽ey感)為隨扎機函聽數(shù)。殊通常滴,當蓄關鍵具字長狡度不兄等時勢采用番此法孩構造歉的哈炒希函恰數(shù)較縣恰當欄。6、隨早機數(shù)濃法實際叨工作盼中需足視不盟同的碌情況咽采用互不同鉛的哈意希函容數(shù)。別通常出考慮政的因序素有思:(1)計良算哈娃希函映數(shù)所浮需時扛間(2)關著鍵字格的大訴小(3)哈礦希表碌的大怎?。?)關啞鍵字響的分胳布情旨況(5)記求錄的嘴查找叼頻率三、趁處理慈沖突碗的方襖法通常簽用的研處理歲沖突沾的方霜法有關下列竟幾種矩:開放挑定址否法再哈棒希法鏈地慶址法建立撒一個份公共莫溢出偏區(qū)開放哭定址瞞法腦方法:當燃沖突府發(fā)生刊時,涉形成晚一個旱探查超序列劈燕;沿趴此序惠列逐繩個地款址探申查,放直到帶找到蛋一個軌空位沖置(肉開放丙的地皮址)斥,將堡發(fā)生種沖突乳的記利錄放夕到該翁地址理中,屬即Hi壟=(袋H(草ke感y)迫+di)賠MO戴D卡m,i=閃1,妥2,秒……步k屢(k絲式m懸-1竿)1、開昏放定拾址法其中齊:H(感ke浸y)卡——哈希名函數(shù),m—吉—哈希夏表表未長,di具——增量基序列di有下查列三隱種取色法線性逗探測耀再散附列:di=1軋,2稅,3綠,…火…m喜-1二次抗探測掉再散暢列:di=1臨2,僵-1炸2,嫌22虧,-勢22館,3拐2,陷……盆±k袋2(研k患m/碎2)偽隨緒機探預測再或散列:di=偽隨肉機數(shù)紐奉序列例掛表膽長為11的哈傻希表平中已州填有栗關鍵們字為17,60,29的記幅錄,H(憐ke竄y)著=k無ey很MO半D犯1附1,現(xiàn)有居第4樹個記蘆錄,匪其關佩鍵字凍為3泊8,蓬按三煤種處下理沖畜突的屋方法宗,將載它填腫入表由中(1挑)艙H磁(3儲8)仙=3售8發(fā)MO獸D拳11倒=5沖突H1援=(粒5+堆1)裹M班OD車1嗓1=徹6沖突H2裹=(雜5+最2)跑M叼OD志1顯1=憑7沖突H3傲=(兇5+除3)伏M唱OD朱1匆1=鎖8不沖挺突(2鍵)戒H產(3莖8)峰=3孝8宮MO爽D目11軍=5沖突H1畏=(銅5+品12掌)蛙MO想D洞11恢=6沖突H2搏=(佛5-窗12什)云MO策D養(yǎng)11忌=4不沖勿突(3昌)甜H佩(3傲8)箱=3笨8繼MO肆D魂11紙=5,沖突,設只偽隨灣機數(shù)測序列貌為9,則勞:H1析=(礎5+肺9)唇M騎OD廊1罷1=歌3不沖品突012345678910601729383838構造利若干陶個哈挽希函世數(shù),測當發(fā)石生沖恒突時貓,計碧算下槐一個毫哈希脫地址編,即窩:2、再萌哈希摘法其中Rhi均是不同逆的哈折希函委數(shù),腫即在深同義芽詞產位生地葉址沖墨突時響計算測另一逃個哈違希函廈數(shù)地曲址,意直到環(huán)沖突部不再歷發(fā)生刪。這風種方碰法不騰容易鐘產生“聚開集”唯,但害增加垃了計錦算的夾時間晚。Hi=R鄉(xiāng)豐hi(k東ey駁)嗽i=態(tài)1,蝴2,尋……坡k3、鏈懼地址恭法將所李有關霸鍵字依為同講義詞肺的記螞錄存書儲在強一個息單鏈石表中突,并抬用一喜維數(shù)靠組存抱放頭淋指針攝。例涉如已陳知一燥組關哥鍵字(1番9,劉1恨4,搜2寧3,速1,仇68縱,2支0,失84即,2殲7,攤55與,1策1,愧10悔,7志9)哈希火函數(shù)臨為:H(跌ke婚y)磚=k設ey秘M凳OD域1足3,其每競個分秤量的托初始沙狀態(tài)花都是垃空指嶺針??撤补南5鼐┲窞镮的記臨錄都概插入胞到頭諒指針薪為ch幸ai霧nH單as繼h[裳i]的鏈賢表中撫。在維鏈表價中的賺插入執(zhí)位置脖可以娛在表疼頭或圾表尾承;也掠可以焦在中陵間,痛以保局持同掌義詞膜在同拍一線錯性鏈爐表中趕按關昨鍵字葬有序勁。011427795568198420102311^^^^^^131211109876543214、建刻立一色個公帽共溢眨出區(qū)假設退哈希功函數(shù)仗的值裙域為[0,m-鵲1],則箏向量Ha森sh果T模ab吉le陶[0野,m士-1聽]為基淹本表嶼,每投個分喜量存柱放記幼錄,杠另設裝立向耀量Ov纖er睬T爸ab阻le心[0悼,v參]為溢陣出表狼。所屆有關四鍵字匪和基者本表影中關退鍵字仍為同菜義詞違的記既錄,倘不管游它們嬌由哈子希函煎數(shù)得舊到的筐哈希爭地址歸是什撈么,鋪一旦章發(fā)生冒沖突綿,都紐奉填入監(jiān)溢出略表四、艱哈希共表的殊查找豆與分民析1、哈匆希表色的查及找過贈程在哈聞希表背上進按行查導找的衫過程左和哈勻希造慈表的怖過程筐基本欣一致款。給炮定k值,脊根據(jù)慢造表驗時設漢定的靠哈希歸函數(shù)苦求得退哈希廳地址情,若墨表中聾此位籍置上見沒有眠記錄綱,則河查找艙不成斥功;否則嚼比較完關鍵腸字否則責根據(jù)境造表露時設端定的慈處理最沖突腦的方由法找絮“下都一地林址”責,直州至哈穗希表蔽中某唯個位堡置為駕“空雪”或碗者表求中所德填記財錄的忠關鍵特字等健于給期定值珍時為浮止。若和霜給定構值相業(yè)等,奔則查腐找成昆功;例途已際知一齊組關彩鍵字(1久9,汁14衡,2鋒3,沉1,愿68幻玉,2竄0,誤84鋪,2夢7,雨55筋,1遞1,捷10筑,7蠟9),鮮哈希綿函數(shù)舍為:H(塘ke隱y)困=k狼ey禽M遞OD去1甲3,哈希桿表長垃為m=高16,設每俊個記嚼錄的撈查找窄概率零相等(1炸)用線聚性探研測再職散列勵處理擁沖突甘,即Hi=(效H(寬ke竊y)偏+d秘i)裕M林OD禁mH(55)=妹3沖突哀,H1墓=(吵3+賭1)刷MO伯D1臉6=沿4沖突笨,H2社=(搞3+辱2)各MO爐D1淋6=杏5H(79)=鋼1沖突號,H1診=(暗1+指1)織MO吵D1彩6=鑼2沖突眼,H2級=(箏1+全2)胃MO等D1蠻6=類3沖突亦,H3化=(盤1+先3)刻MO減D1至6=天4沖突非,H4祖=(堡1+岡4)宴MO倒D1采6=請5沖突弱,H5笛=(妻1+川5)缸MO歇D1鄭6=酒6沖突翼,H6滿=(祥1+坡6)阿MO滔D1縱6=懂7沖突宵,H7幫=(誰1+屬7)花MO屠D1裹6=慢8沖突納,H8肅=(調1+花8)并MO殘D1胸6=賠90123456789101112131415AS盤L=甚(1*6鞭+2+3*3+4+9)/1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司貨款擔保合同范本
- cso公司合同范本
- 專題一第2課五、《軟件系統(tǒng)》教學設計 2023-2024學年青島版(2018)初中信息技術七年級上冊
- 15《我與地壇》教學設計 2024-2025學年統(tǒng)編版高中語文必修上冊
- 修房子木材出售合同范本
- 凍庫工程銷售合同范本
- 公裝合同范本
- 個人郊區(qū)房屋買賣合同范本
- 個人餐廳轉讓合同范本
- 2024年新鄉(xiāng)市長垣市公益性崗位招聘筆試真題
- 《經(jīng)營模式淺談》課件
- 創(chuàng)傷失血性休克中國急診專家共識
- 環(huán)保設備設施風險分析評價記錄及風險分級管控清單
- 疏散路線智能規(guī)劃系統(tǒng)
- 《快遞實務》課件 項目1 走進快遞
- 統(tǒng)編版語文四年級下冊第六單元教材解讀解讀與集體備課課件
- 新教科版六年級下冊科學全冊教案
- 雞肉食品行業(yè)報告
- 顆粒增強鋁基復合材料
- 火車站消防指導培訓課件
- 婦產科全套課件
評論
0/150
提交評論