附有本人超級詳細解釋(看不懂的面壁十天!) 一、 實際問題: 希爾排序(Shell Sort)是插入排序的一種。因D.L.Shell于1959年提出而得名。它又稱“縮小增量分類法”,在時間效率上比插入、比較、冒泡等排序算法有了較大改進。能對無序序列按一定規律進行排序。 二、數學模型: 先取一個小于n的整數d1作為第一個增量,把文件的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同一個組中。先在各組內進行直接插人排序;然后,取第二個增量d2<d1重復上述的分組和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有記錄放在同一組中進行直接插入排序為止。該方法實質上是一種分組插入方法。 三、算法設計: 1、將相隔某個增量dlta[k]的元素構成一個子序列。在排序過程中,逐次減小這個增量,最后當h減到1時,進行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t為排序趟數,1≤k≤t≤[log2 (n+1)],其中n為待排序序列的長度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])進行一趟希爾插入排序。 3、在主函數中控制程序執行流程。 4、時間復雜度:1≤k≤t≤[log2 (n+1)]時為O(n3/2)。
標簽: Shell 1959 Sort 排序
上傳時間: 2013-12-11
上傳用戶:天涯
設T 是一棵帶權樹,樹的每一條邊帶一個正權。又設S 是T 的頂點集,T/S 是從樹T 中 將S中頂點刪去后得到的森林。如果T/S中所有樹的從根到葉的路長都不超過d ,則稱T/S 是一個d 森林。 (1)設計一個算法求T的最小頂點集S,使T/S是d 森林。(提示:從葉向根移動) (2)分析算法的正確性和計算復雜性。 (3)設T中有n 個頂點,則算法的計算時間復雜性應為O(n)。
標簽: 樹
上傳時間: 2015-05-31
上傳用戶:我們的船長
給定n個大小不等的圓c , c , , cn 1 2 ,現要將這n個圓排進一個矩形框中,且要求各圓 與矩形框的底邊相切。圓排列問題要求從n個圓的所有排列中找出有最小長度的圓排列。例 如,當n=3,且所給的3 個圓的半徑分別為1,1,2時,這3個圓的最小長度的圓排列如圖 所示。其最小長度為2 + 4 2 。
標簽: 61516 cn
上傳時間: 2013-11-25
上傳用戶:lunshaomo
最新N多的黑客小工具集合(for windows),如果你有興趣,一定不要錯過,錯過后悔!!!還有一些體積比較大的,以后陸續放送給大家!!:)
標簽: windows for 黑客 體積
上傳時間: 2014-01-26
上傳用戶:1966640071
最佳高度問題。 問題描述: 假設有n個任務由K個可并行工作的機器完成。完成任務i需要的時間為t(i)。試設計一個算法找出完成這n個任務的最佳調度,使得完成全部任務的時間最早。
標簽: 并行 機器 算法 調度
上傳時間: 2014-12-07
上傳用戶:Amygdala
最優合并問題 給定K個排好序的序列s1,s2,...,sk,用2 路合并算法將這k個序列合并成一個序列。 假設所采用的2路合并算法合并2個長度分另為m 和n的序列需要m+n-1次比較。試設計一個算法確定合并這個序列的最優合并順序,使所需的總比較次數最少。
標簽: 合并 序列 算法 sk
上傳時間: 2014-11-29
上傳用戶:a3318966
最小重量機器設計問題 設某一機器由n個部件組成,每一種部件都可以從m個不同的供應商處購得。設w(i,j)是從供應商j處購得的部件i的重量,C(i,j)是相應的價格。 設計一個優先列式分支限界法,給出總價格不超過c的最小重量機器設計。
標簽: 機器 設計問題 部件
上傳時間: 2014-01-22
上傳用戶:stewart·
給定n 個正整數和4 個運算符+、-、*、/, 且運算符無優先級,如2+3*5=25。對于任意給定 的整數m,試設計一個算法,用以上給出的n 個數 和4 個運算符,產生整數m,且用的運算次數最少 給出的n個數中每個數最多只能用1 次,但每種運 算符可以任意使用。
標簽: 正 整數 運算符
上傳時間: 2014-06-23
上傳用戶:ve3344
給定一個n個結點的連通圖,用回溯法求出圖中含有的所有哈密爾頓環。包含實驗報告。
標簽:
上傳時間: 2015-06-02
上傳用戶:a673761058
通過精心挑選劃分元素v,可以得到一個最壞情況時間復雜度為O(n)的選擇算法。本次實習要求用c語言將此算法實現。要求實現此功能:輸入一組數,返回A[i],使其為A(m:p)中第k小的元素,k是一個全局變量,取大于1的整數
標簽: 分 元素
上傳用戶:zmy123
蟲蟲下載站版權所有 京ICP備2021023401號-1