這個(gè)程序的頭文件中包含四種排序方法:泡沫排序法(bubble),插入排序法(insertion),快速排序法(quick)和選擇排序法(selection)。頭文件中還使用了模板技術(shù),以便可以同時(shí)實(shí)現(xiàn)幾種類(lèi)型的排序算法。
上傳時(shí)間: 2013-12-23
上傳用戶:jhksyghr
附有本人超級(jí)詳細(xì)解釋?zhuān)床欢拿姹谑欤。? 一、 實(shí)際問(wèn)題: 希爾排序(Shell Sort)是插入排序的一種。因D.L.Shell于1959年提出而得名。它又稱(chēng)“縮小增量分類(lèi)法”,在時(shí)間效率上比插入、比較、冒泡等排序算法有了較大改進(jìn)。能對(duì)無(wú)序序列按一定規(guī)律進(jìn)行排序。 二、數(shù)學(xué)模型: 先取一個(gè)小于n的整數(shù)d1作為第一個(gè)增量,把文件的全部記錄分成d1個(gè)組。所有距離為dl的倍數(shù)的記錄放在同一個(gè)組中。先在各組內(nèi)進(jìn)行直接插人排序;然后,取第二個(gè)增量d2<d1重復(fù)上述的分組和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有記錄放在同一組中進(jìn)行直接插入排序?yàn)橹?。該方法?shí)質(zhì)上是一種分組插入方法。 三、算法設(shè)計(jì): 1、將相隔某個(gè)增量dlta[k]的元素構(gòu)成一個(gè)子序列。在排序過(guò)程中,逐次減小這個(gè)增量,最后當(dāng)h減到1時(shí),進(jìn)行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t為排序趟數(shù),1≤k≤t≤[log2 (n+1)],其中n為待排序序列的長(zhǎng)度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])進(jìn)行一趟希爾插入排序。 3、在主函數(shù)中控制程序執(zhí)行流程。 4、時(shí)間復(fù)雜度:1≤k≤t≤[log2 (n+1)]時(shí)為O(n3/2)。
上傳時(shí)間: 2013-12-11
上傳用戶:天涯
《Delphi算法與數(shù)據(jù)結(jié)構(gòu)》源碼 Delphi開(kāi)發(fā)人員Julian Bucknall從實(shí)用角度為廣大程序員提供了有關(guān)使用算法和數(shù)據(jù)結(jié)構(gòu)的一個(gè)詳盡的介紹。Bucknall先從算法性能的討論開(kāi)始,涵蓋了諸如數(shù)組、鏈表和二叉樹(shù)等內(nèi)容。這本書(shū)強(qiáng)調(diào)了查找算法(如順序和二分查找),另外也重點(diǎn)介紹了排序算法(包括冒泡排序、插入排序、希爾排序、快速排序和堆排序),此外還提供了有關(guān)的優(yōu)化技術(shù)。不僅如此,作者還介紹了散列和散列表、優(yōu)先隊(duì)列、狀態(tài)機(jī)和正則表達(dá)式以及諸如哈夫曼和LZ77等數(shù)據(jù)壓縮技術(shù)。 隨附光盤(pán)中有作者所開(kāi)發(fā)的一個(gè)相當(dāng)成功的自由軟件庫(kù)EZDSL,另外還有可運(yùn)行于各版本Delphi上和Kylix上的源代碼,此外還提供了TurboPower Software公司的可執(zhí)行程序。
標(biāo)簽: Bucknall Delphi Julian 算法
上傳時(shí)間: 2013-12-21
上傳用戶:標(biāo)點(diǎn)符號(hào)
因?yàn)椴煌呐判蚍椒ㄟm應(yīng)不同的應(yīng)用環(huán)境和要求,所以選擇合適的排序方法應(yīng)綜合考慮下列因素: ①待排序的記錄數(shù)目n; ②記錄的大小(規(guī)模); ③關(guān)鍵字的結(jié)構(gòu)及其初始狀態(tài); ④對(duì)穩(wěn)定性的要求; ⑤語(yǔ)言工具的條件; ⑥存儲(chǔ)結(jié)構(gòu); ⑦時(shí)間和輔助空間復(fù)雜度等。 本程序?qū)σ韵?種常用的內(nèi)部排序算法進(jìn)行實(shí)測(cè)比較:插入排序、希爾排序、起泡排序、快速排序、歸并排序、選擇排序、堆排序。我主要負(fù)責(zé)的是希爾排序和堆排序。
上傳時(shí)間: 2013-12-24
上傳用戶:qiao8960
排序及應(yīng)用 題目一:統(tǒng)計(jì)成績(jī) 1. 實(shí)驗(yàn)?zāi)康模赫莆粘S玫呐判蚍椒?,深刻理解排序的定義和各種排序方法的特點(diǎn),并能靈活應(yīng)用。 2. 實(shí)驗(yàn)內(nèi)容: (1) 輸入n個(gè)學(xué)生的考試成績(jī),每個(gè)學(xué)生信息由姓名與分?jǐn)?shù)組成; (2)選擇一種排序算法,按分?jǐn)?shù)高低次序,打印出每個(gè)學(xué)生的名次,分?jǐn)?shù)相同的為同一名次。 (3)按名次給出每個(gè)學(xué)生的姓名與分?jǐn)?shù)。 3. 實(shí)驗(yàn)要求:任選一種高級(jí)程序語(yǔ)言編寫(xiě)源程序,并調(diào)試通過(guò),測(cè)試正確。 題目二:按字典順序排序 1. 實(shí)驗(yàn)?zāi)康模赫莆粘S玫呐判蚍椒?,深刻理解排序的定義和各種排序方法的特點(diǎn),并能靈活應(yīng)用到字符串排序中。 2. 實(shí)驗(yàn)內(nèi)容 (1)輸入若干個(gè)國(guó)家名稱(chēng)(所有的名稱(chēng)均用大寫(xiě)或小寫(xiě)表示) (2)選擇一種排序算法,將輸入的國(guó)家進(jìn)行排序; (3)按字母順序輸出國(guó)家名稱(chēng)。 3. 實(shí)驗(yàn)要求:任選一種高級(jí)程序語(yǔ)言編寫(xiě)源程序,并調(diào)試通過(guò),測(cè)試正確。
標(biāo)簽: 排序 實(shí)驗(yàn)
上傳時(shí)間: 2015-11-08
上傳用戶:jackgao
c語(yǔ)言數(shù)值計(jì)算算法,包括各種排序算法、差值、迭代等
標(biāo)簽: c語(yǔ)言 數(shù)值計(jì)算 算法
上傳時(shí)間: 2013-12-07
上傳用戶:璇珠官人
算法中經(jīng)典問(wèn)題,排序算法的實(shí)現(xiàn)。其中有冒泡、改進(jìn)的快速、堆、選擇排序的實(shí)現(xiàn)。
標(biāo)簽: 算法
上傳時(shí)間: 2016-01-04
上傳用戶:lanhuaying
這是歸并排序的源代碼,可以輸出每一趟的排序結(jié)果,有助于理解歸并排序算法的核心思想。
上傳時(shí)間: 2013-12-24
上傳用戶:520
一 :排序n個(gè)元素,元素為隨機(jī)生成的長(zhǎng)為1~16的字符串,n的取值為2k(k取4、6、8、10、12、16、18、20),排序算法分別為直接插入排序, 冒泡排序,堆排序,歸并排序,快速排序,比較各種排序在不同輸入下的運(yùn)行時(shí)間. 二:排序n個(gè)元素,元素為隨機(jī)生成的1~10000的正整數(shù),n的取值為2k(k取4、6、8、10、12、16、18、20),排序算法分別為直接插入排序,快速排序,基數(shù)排序,計(jì)數(shù)排序,比較各種排序在不同輸入下的運(yùn)行時(shí)間.
上傳時(shí)間: 2016-02-07
上傳用戶:dsgkjgkjg
排序是數(shù)據(jù)結(jié)構(gòu)中的一塊難點(diǎn),也是重點(diǎn)。熟練的掌握各種各樣的排序算法是對(duì)每個(gè)學(xué)生的基本的要求。也是考研的重點(diǎn)
標(biāo)簽: 排序 數(shù)據(jù)結(jié)構(gòu)
上傳時(shí)間: 2016-02-29
上傳用戶:stvnash
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1