附有本人超級詳細解釋(看不懂的面壁十天!) 一、 實際問題: 希爾排序(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)。
上傳時間: 2013-12-11
上傳用戶:天涯
LCS(最長公共子序列)問題可以簡單地描述如下: 一個給定序列的子序列是在該序列中刪去若干元素后得到的序列。給定兩個序列X和Y,當另一序列Z既是X的子序列又是Y的子序列時,稱Z是序列X和Y的公共子序列。例如,若X={A,B,C,B,D,B,A},Y={B,D,C,A,B,A},則序列{B,C,A}是X和Y的一個公共子序列,但它不是X和Y的一個最長公共子序列。序列{B,C,B,A}也是X和Y的一個公共子序列,它的長度為4,而且它是X和Y的一個最長公共子序列,因為X和Y沒有長度大于4的公共子序列。 最長公共子序列問題就是給定兩個序列X={x1,x2,...xm}和Y={y1,y2,...yn},找出X和Y的一個最長公共子序列。對于這個問題比較容易想到的算法是窮舉,對X的所有子序列,檢查它是否也是Y的子序列,從而確定它是否為X和Y的公共子序列,并且在檢查過程中記錄最長的公共子序列。X的所有子序列都檢查過后即可求出X和Y的最長公共子序列。X的每個子序列相應于下標集{1,2,...,m}的一個子集。因此,共有2^m個不同子序列,從而窮舉搜索法需要指數時間。
上傳時間: 2015-06-09
上傳用戶:氣溫達上千萬的
//在tc3.0++在運行 //a數組用于隨機產生1-6數表示每個方格后面的圖形.用inita()函數來實現 //c數組用于記錄方格的狀態,用字符L(lock)表示沒有打開的方格 //D(delete)表示已消去的方格.O(open)表示打開的方格. //變量m表示按回車鍵的有效次數.也是記憶力參數,越小記憶力越好 //變量xpos,ypos用于表示當前光標所在的位置 //(x1,y1),(x2,y2)用于記錄打開的兩個方格的位置 //judge()函數用于控制光標范圍,使其不能移出長方形 //win()函數用于判斷游戲是否過關,通過判斷每個方格是否全是 D 狀態 //xago,yago 用于記錄移動前的位置 //ax,ay表示行列式的行與列,用它們來控制游戲的關數,ax位于3-6之間,ay位于4-7之間 //z來控制方格后的圖形 //第一關后面的圖形用1-6代表的圖形.第二關后面的圖形用0-9十個數。第三關后面的圖形用A-O十五個字母, //第四關后面的圖形用A-T二十一個字母
上傳時間: 2015-06-19
上傳用戶:hgy9473
本書第二部分講述的是在Wi n 3 2平臺上的Wi n s o c k編程。對于眾多的基層網絡協議, Wi n s o c k是訪問它們的首選接口。而且在每個Wi n 3 2平臺上,Wi n s o c k都以不同的形式存在著。 Wi n s o c k是網絡編程接口,而不是協議。它從U n i x平臺的B e r k e l e y(B S D)套接字方案借鑒了 許多東西,后者能訪問多種網絡協議。在Wi n 3 2環境中,Wi n s o c k接口最終成為一個真正的 “與協議無關”接口,尤其是在Winsock 2發布之后。
上傳時間: 2015-07-08
上傳用戶:thinode
本附錄按錯誤編號列出了所有Wi n s o c k錯誤代碼。但要注意的是,該列表沒有包括標記為 “B S D特有”的Wi n s o c k錯誤,也沒有包括那些尚未正式列入規范的錯誤。此外,與Wi n 3 2錯 誤有著直接對應關系的Wi n s o c k錯誤列在本附錄末尾。
上傳時間: 2014-01-11
上傳用戶:ghostparker
設計一個O(n2)時間的算法,找出由n個數組成的序列的最長單調遞增子序列。
上傳時間: 2015-07-15
上傳用戶:qq21508895
代入法的啟發示搜索 我的代碼實現是:按照自然語言各字母出現頻率的大小從高到低(已經有人作國統計分析了)先生成一張字母出現頻率統計表(A)--------(e),(t,a,o,i,n,s,h,r),(d,l),(c,u,m,w,f,g,y,p,b),(v,k,j,x,q,z) ,再對密文字母計算頻率,并按頻率從高到低生成一張輸入密文字母的統計表(B),通過兩張表的對應關系,不斷用A中的字母去替換B中的字母,搜索不成功時就回退,在這里回朔是一個關鍵。
上傳時間: 2015-10-24
上傳用戶:wanqunsheng
后綴數組求最長公共子串 這里的最長公共子串是指的連續的子串,并非經典dp的那種。 aabbc abc 這兩個字符串的最長公共子串為ab 算法復雜度是o(n)的(n為兩個字符串長度的和)
上傳時間: 2015-10-24
上傳用戶:電子世界
TLC549是一種采用8位逐次逼近式工作的A/D轉換器。內部包含系統時鐘、采樣和保持、8位A/D轉換器、數據寄存器以及控制邏輯電路。TLC549每25uS重復一次“輸入—轉換—輸出”。器件有兩個控制輸入:I/O CLOCK和片選(CS)。 內部系統時鐘和I/O CLOCK可獨立使用。應用電路的設計只需利用I/O時鐘啟動轉換或讀出轉換結果。當CS為高電平時,DATA OUT處于高阻態且I/O時鐘被禁止。
上傳時間: 2014-01-17
上傳用戶:qiaoyue
長高44b0xi BIOS源碼 FS44B0II BIOS具有啟動、引導,下載、燒寫,設置日期、時間,設置工作頻率等多種功能,並且支持各種參數的存儲和自動調用。 可以用flashpgm等軟件將BIOS燒寫到Flash中去,BIOS的自身駐留地址位于NOR FLASH的0x1f0000處,系統參數保存在0x1ff000以上區域中。所以在燒寫完BIOS,上電復位后先要執一定要執行backup命令把BIOS本身拷貝到NOR FLASH的高端1f0000去。
上傳時間: 2013-12-25
上傳用戶:ainimao