基本思想: 設(shè)所排序序列的記錄個數(shù)為n。i取1,2,…,n-1,從所有n-i+1個記錄(R,R[i+1],…,R[n]中找出排序碼最小的記錄,與第i個記錄交換。執(zhí)行n-1趟 后就完成了記錄序列的排序。
上傳時間: 2013-12-19
上傳用戶:kytqcool
附有本人超級詳細(xì)解釋(看不懂的面壁十天!) 一、 實(shí)際問題: 希爾排序(Shell Sort)是插入排序的一種。因D.L.Shell于1959年提出而得名。它又稱“縮小增量分類法”,在時間效率上比插入、比較、冒泡等排序算法有了較大改進(jìn)。能對無序序列按一定規(guī)律進(jìn)行排序。 二、數(shù)學(xué)模型: 先取一個小于n的整數(shù)d1作為第一個增量,把文件的全部記錄分成d1個組。所有距離為dl的倍數(shù)的記錄放在同一個組中。先在各組內(nèi)進(jìn)行直接插人排序;然后,取第二個增量d2<d1重復(fù)上述的分組和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有記錄放在同一組中進(jìn)行直接插入排序?yàn)橹?。該方法?shí)質(zhì)上是一種分組插入方法。 三、算法設(shè)計: 1、將相隔某個增量dlta[k]的元素構(gòu)成一個子序列。在排序過程中,逐次減小這個增量,最后當(dāng)h減到1時,進(jìn)行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t為排序趟數(shù),1≤k≤t≤[log2 (n+1)],其中n為待排序序列的長度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])進(jìn)行一趟希爾插入排序。 3、在主函數(shù)中控制程序執(zhí)行流程。 4、時間復(fù)雜度:1≤k≤t≤[log2 (n+1)]時為O(n3/2)。
上傳時間: 2013-12-11
上傳用戶:天涯
希爾排序(縮小增量法) 排序過程:先取一個正整數(shù)d1<n,把所有相隔d1的記錄放一組,組內(nèi)進(jìn)行直接插入排序;然后取d2<d1,重復(fù)上述分組和排序操作;直至di=1,即所有記錄放進(jìn)一個組中排序?yàn)橹?/p>
上傳時間: 2013-12-30
上傳用戶:waizhang
有多個程序, 傳銷, 取火柴, 二的N次方等
標(biāo)簽: 程序
上傳時間: 2014-01-08
上傳用戶:Divine
題目:參加運(yùn)動會的N個學(xué)校編號為1~N.比賽分成M個男子項(xiàng)目和W個女子項(xiàng)目,項(xiàng)目編號分別為1~M和M+1~M+W.由于個項(xiàng)目參加人數(shù)差別較大,有些項(xiàng)目取前5名,得分順序?yàn)?,5,3,2,1 還有些項(xiàng)目只取前3名,得分順序?yàn)?,3,2.寫一個統(tǒng)計程序產(chǎn)生各種成績單和得分報表.基本要求:產(chǎn)生各學(xué)校的成績單,內(nèi)容包括各校所取得的每項(xiàng)成績的項(xiàng)目號,名次,姓名和得分 產(chǎn)生團(tuán)體總分報表,內(nèi)容包括校號,男子團(tuán)體總分,女子團(tuán)體總分和團(tuán)體總分.概要設(shè)計:1. 為實(shí)現(xiàn)上述程序功能,應(yīng)以線性表表示集合.2. 本程序包含3個模塊:(1) 各集合定義模塊(2) 線性表實(shí)現(xiàn)模塊(3) 主程序模塊
上傳時間: 2013-12-21
上傳用戶:黃華強(qiáng)
1024位的大整數(shù)進(jìn)行相乘(N方)取模,是RSA密鑰算法的一部分。其中,我對十進(jìn)制,二進(jìn)制的高效轉(zhuǎn)換部分非常滿意
上傳時間: 2014-07-02
上傳用戶:aix008
給出從m個數(shù)中取n個數(shù)的所有組合,解決了組合數(shù)學(xué)中的一個難題,例如從6中取4個具體情況怎樣,本程序給出(1,2,3,4)(1,2,3,5)....等等每一種取法.
上傳時間: 2016-02-03
上傳用戶:sdq_123
卷積運(yùn)算:取x(t)和h(t)的長度為nx,nh。平移量n=nh+nx-1,利用for和if語句實(shí)現(xiàn)倒序求和運(yùn)算。外循環(huán)用一個for語句實(shí)現(xiàn)平移,通過在求和時取數(shù)組元素的順序?qū)崿F(xiàn)倒序求和
上傳時間: 2013-12-20
上傳用戶:saharawalker
快速排序思想: 在待排序的n個記錄中任取一個記錄(通常取第一個記錄),把所有小于該記錄的記錄移到其左邊,把所有大于該記錄的記錄移到其右邊,所選記錄正好處在其應(yīng)在的位置,且把原有序列劃分成兩個子序列。然后,對兩個子序列分別重復(fù)上述過程,直到所有記錄都排好序。把當(dāng)前參加排序的記錄按第一個記錄的排序碼分成前后兩個部分的過程稱為一趟快速排序。
上傳時間: 2016-03-22
上傳用戶:電子世界
有限期作業(yè)安排問題”描述如下:有n個任務(wù)J1,J2,...,Jn,每個任務(wù)Ji都有一個完成期限di,若任務(wù)Ji在它的期限di內(nèi)完成,則可以獲利Ci(1[i[n) 問如何安排使得總的收益最大(假設(shè)完成每一個任務(wù)所需時間均為一個單位時間).這個問題適合用貪心算法來解決,貪心算法的出發(fā)點(diǎn)是每一次都選擇利潤大的任務(wù)來完成以期得到最多的收益 但是對于本問題由于每一個任務(wù)都有一個完成的期限,因此在任務(wù)安排過程中除了考慮利潤C(jī)i外,還要考慮期限di.
上傳時間: 2016-06-27
上傳用戶:s363994250
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1