freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

二項(xiàng)堆和fibonacci堆的分析與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文-展示頁(yè)

2025-06-27 06:35本頁(yè)面
  

【正文】 earning the property and specific implementation algorithm of binomial heap and fibonacci heap on discrete space. Through specific code, we pare the time consumption and space consumption between binomial heap and fibonacci heap, and contrast their respective advantages and disadvantages. At the same time, we study the effect of heap in practical application. Keywords: binary heap, binomial heap, fibonacci heap, implementation algorithm目錄第1章 緒論 5 數(shù)據(jù)結(jié)構(gòu) 5 堆的定義和性質(zhì) 5 堆的類(lèi)別 6 本文主要內(nèi)容 6第2章 二叉堆 7 二叉堆的定義 7 二叉堆的存儲(chǔ) 7 二叉堆的基本操作 7 二叉堆的應(yīng)用局限性 7第3章 二項(xiàng)堆 8 二項(xiàng)樹(shù) 8 二項(xiàng)堆 9 二項(xiàng)堆的基本操作 10 合并 11 插入 11 查找最小關(guān)鍵字 12 刪除最小關(guān)鍵字 12 減小關(guān)鍵字值 12 刪除節(jié)點(diǎn) 12第4章 斐波那契堆 13 斐波納契堆的定義 13 斐波納契堆的特點(diǎn) 13 斐波那契堆操作 14 創(chuàng)建 14 插入 15 刪除最小關(guān)鍵字 15 減小關(guān)鍵字值 16 刪除節(jié)點(diǎn) 18第5章 實(shí)現(xiàn)細(xì)節(jié) 18 二項(xiàng)堆代碼結(jié)構(gòu) 19 斐波納契堆代碼結(jié)構(gòu) 20 其他函數(shù) 20第6章 性能分析 20總結(jié)與展望 22參考文獻(xiàn) 23第1章 緒論 在信息化時(shí)代,電子計(jì)算機(jī)在我們?nèi)粘I钪邪缪堇嬷匾淖饔?。通過(guò)具體代碼實(shí)現(xiàn)來(lái)對(duì)比二項(xiàng)堆和斐波那契堆實(shí)現(xiàn)的時(shí)間空間上消耗,對(duì)比起各自的優(yōu)劣,同時(shí)探討堆在具體應(yīng)用中發(fā)揮的作用。斐波那契堆有著非常好的均攤運(yùn)行時(shí)間,可是其數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn)相對(duì)比較復(fù)雜,因此人們一直在尋找一種既能實(shí)現(xiàn)較好的均攤運(yùn)行時(shí)間,同時(shí)數(shù)據(jù)結(jié)構(gòu)相對(duì)比較簡(jiǎn)潔的實(shí)現(xiàn)算法。常見(jiàn)的堆的實(shí)現(xiàn)包括二叉堆、二項(xiàng)堆,斐波那契堆。 堆總是滿足堆中某個(gè)節(jié)點(diǎn)的值總是不大于或不小于其父節(jié)點(diǎn)的值這個(gè)特殊性質(zhì)。 本科生畢業(yè)設(shè)計(jì)(論文)題 目: 二項(xiàng)堆和Fibonacci堆的分析與實(shí)現(xiàn) 學(xué) 院: 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 二項(xiàng)堆和Fibonacci堆的分析與實(shí)現(xiàn)摘要堆是計(jì)算機(jī)科學(xué)中一類(lèi)特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱(chēng)。堆通常被視為部分有序的樹(shù)形對(duì)象。通常將根節(jié)點(diǎn)最大的堆叫做最大堆或大根堆,根節(jié)點(diǎn)最小的堆叫做最小堆或小根堆。堆也是計(jì)算機(jī)程序設(shè)計(jì)中經(jīng)常用到的數(shù)據(jù)結(jié)構(gòu),在最短路算法的快速實(shí)現(xiàn)和最優(yōu)編碼的哈夫曼樹(shù)實(shí)現(xiàn)中都需要用到堆. 同時(shí)堆也經(jīng)常作為優(yōu)先級(jí)隊(duì)列來(lái)使用,在程序調(diào)度算法中發(fā)揮重要作用。本課題的目的是學(xué)習(xí)連續(xù)空間上二叉堆的性質(zhì)特點(diǎn)和離散空間上二項(xiàng)堆以及斐波那契堆的性質(zhì)特點(diǎn)同時(shí)實(shí)現(xiàn)二項(xiàng)堆和斐波那契堆的具體算法。關(guān)鍵字:二叉堆,二項(xiàng)堆,斐波納契堆,實(shí)現(xiàn)算法。從電子郵件到網(wǎng)上視頻,從網(wǎng)絡(luò)游戲到三色定理證明,程序無(wú)處不在。此時(shí)良好的數(shù)據(jù)結(jié)構(gòu)和精心設(shè)計(jì)的算法便成為解決問(wèn)題的重點(diǎn)。數(shù)據(jù)結(jié)構(gòu)是指計(jì)算機(jī)內(nèi)部存儲(chǔ)和組織數(shù)據(jù)的方式。通過(guò)精心設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和建立在對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu)上的各種操作,通常情況下能夠使得程序運(yùn)行的更加高效和穩(wěn)定。在面對(duì)現(xiàn)實(shí)世界中的具體問(wèn)題時(shí),我們通過(guò)抽象來(lái)建立對(duì)應(yīng)的數(shù)學(xué)描述,選擇合理的數(shù)據(jù)結(jié)構(gòu)能夠?qū)?wèn)題的高效解決起到事半功倍的作用。從抽象的角度來(lái)講,堆是部分有序的樹(shù)形結(jié)構(gòu)。在本文的正文部份,如果沒(méi)有特殊說(shuō)明,我們總是假定在討論最小堆。由于這些特殊性質(zhì),使得它在許多具體算法中得到普遍應(yīng)用,例如最短路算法的快速實(shí)現(xiàn),最優(yōu)編碼的哈夫曼樹(shù)實(shí)現(xiàn),優(yōu)先級(jí)調(diào)度算法等等。二叉堆的實(shí)現(xiàn)相對(duì)簡(jiǎn)單,運(yùn)行時(shí)間的常數(shù)因子也小,但是同時(shí)也存在一些不足之處。通常這種情況下我們傾向于分配一個(gè)較大的內(nèi)存,但是極有可能造成內(nèi)存的浪費(fèi),同時(shí)當(dāng)數(shù)據(jù)規(guī)模超過(guò)分配的內(nèi)存時(shí)還要重新分配內(nèi)存,其中就要涉及較大的數(shù)據(jù)復(fù)制操作,這對(duì)運(yùn)行效率是極其不利的。由于這兩個(gè)原因使得二叉堆的應(yīng)用得到限制,許多人開(kāi)始探索離散空間上實(shí)現(xiàn)堆的方法。在漸近時(shí)間復(fù)雜度上二項(xiàng)堆和二叉堆的時(shí)間復(fù)雜度是相同的。不過(guò)由于數(shù)據(jù)結(jié)構(gòu)相對(duì)復(fù)雜,斐波那契堆的常數(shù)因子較大,在較小規(guī)模的數(shù)據(jù)上的時(shí)間優(yōu)勢(shì)并不明顯。 本文主要內(nèi)容本文結(jié)構(gòu)內(nèi)容安排如下: 第一章 介紹數(shù)據(jù)結(jié)構(gòu)的重要性同時(shí)引出堆這一重要數(shù)據(jù)結(jié)構(gòu)。同時(shí)在本章中給出本文的結(jié)構(gòu)安排。 第三章 介紹二項(xiàng)堆的結(jié)構(gòu),數(shù)學(xué)額性質(zhì)和基本操作的相關(guān)算法。 第四章 介紹斐波納契堆的數(shù)據(jù)結(jié)構(gòu)和基本操作的算法實(shí)現(xiàn)。 第六章 總結(jié)與展望 第2章 二叉堆 二叉堆定義二叉堆是一種應(yīng)用廣泛的堆結(jié)構(gòu)。二叉堆滿足堆特性:父節(jié)點(diǎn)的鍵值總是大于或等于(小于或等于)任何一個(gè)子節(jié)點(diǎn)的鍵值,且每個(gè)節(jié)點(diǎn)的左子樹(shù)和右子樹(shù)都是一個(gè)二叉堆(都是最大堆或最小堆)。 當(dāng)父節(jié)點(diǎn)的鍵值總是小于或等于任何一個(gè)子節(jié)點(diǎn)的鍵值時(shí)為最小堆。例如,假設(shè)根節(jié)點(diǎn)在數(shù)組中的位置是1,則第n個(gè)位置的左右子節(jié)點(diǎn)分別在2n和 2n+1的位置,其父節(jié)點(diǎn)處于n/2的位置。二叉堆的連續(xù)存儲(chǔ)性質(zhì)使得我們能夠在O(1)時(shí)間內(nèi)迅速定位父節(jié)點(diǎn)和子節(jié)點(diǎn)的位置。二叉堆可以在時(shí)間內(nèi)進(jìn)行插入節(jié)點(diǎn),刪除節(jié),改變節(jié)點(diǎn)的值等基本操作,同時(shí)能夠在O(1)時(shí)間內(nèi)獲得最小值。(2) 度數(shù)為k的二項(xiàng)樹(shù)由兩棵度數(shù)為k1的二叉樹(shù)構(gòu)成,其中的一棵二叉樹(shù)的根節(jié)點(diǎn)成為另一棵二叉樹(shù)的最左孩子節(jié)點(diǎn)。上圖(b)中的二叉樹(shù)從左至右度數(shù)分別為0至4。因此我們得出度數(shù)為k的二項(xiàng)樹(shù)共有個(gè)結(jié)點(diǎn),高度為k,在深度d處有個(gè)結(jié)點(diǎn)。(2)集合中不能有兩棵或者兩棵以上的二項(xiàng)樹(shù)有相同度數(shù)。由于我們并不需要對(duì)二項(xiàng)樹(shù)的根結(jié)點(diǎn)進(jìn)行隨機(jī)存取的操作,我們將這些根節(jié)點(diǎn)按照度數(shù)從小到大的次序鏈接成一條單鏈,形成的鏈表我們稱(chēng)為主鏈。以上第二個(gè)性質(zhì)則說(shuō)明結(jié)點(diǎn)數(shù)為n的二項(xiàng)堆的根鏈上至多有棵二項(xiàng)樹(shù)。對(duì)于一個(gè)抽象的二項(xiàng)堆H。上圖是兩個(gè)二叉堆合并的示意圖。由于二項(xiàng)樹(shù)根結(jié)點(diǎn)包含最小的關(guān)鍵字,因此在二顆樹(shù)合并時(shí),只需比較二個(gè)根結(jié)點(diǎn)關(guān)鍵字的大小,其中含小關(guān)鍵字的結(jié)點(diǎn)成為結(jié)果樹(shù)的根結(jié)點(diǎn),另一棵樹(shù)則變成結(jié)果樹(shù)的最左孩子。兩個(gè)二項(xiàng)堆的合并可按如下步驟進(jìn)行:因?yàn)橹麈溕系母?jié)點(diǎn)的度數(shù)i從小到大排列且不存在兩個(gè)相同度數(shù)的根節(jié)點(diǎn)在同一主鏈上,因此可以對(duì)兩個(gè)主鏈按照根節(jié)點(diǎn)的度數(shù)從小到大進(jìn)行遍歷合并得到一條主鏈。因此我們對(duì)主鏈進(jìn)行一次遍歷,在遍歷過(guò)程中度數(shù)為i的根節(jié)點(diǎn)只可能有1個(gè),2個(gè)或者3個(gè)。來(lái)如果當(dāng)前度數(shù)為i的根結(jié)只有一個(gè)或者三個(gè)則指針指向下一個(gè)節(jié)點(diǎn),如果只有兩個(gè)則合并兩棵二叉樹(shù)并且將新的根節(jié)點(diǎn)加入主鏈。偽代碼如下:Bin_U
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1