首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
第 1 頁:3.1排序算法 |
第 15 頁:3.2查找算法 |
兩路歸并的遞歸算法:
【算法10.13】
void MSort(ElemType *p,ElemType *p1,int s,int t)
{ /*將p[s…t]歸并排序為p1[s…t]*/
if(s==t) p1[s]=p[s]
else
{ m=(s+t)/2; /*平分*p表*/
MSort(p,p2,s,m); /*遞歸地將p[s…m]歸并為有序的p2[s…m]*/
MSort(p,p2,m+1,t); /*遞歸地將p[m+1…t]歸并為有序的p2[m+1…t]*/
Merge(p2,p1,s,m+1,t); /*將p2[s…m]和p2[m+1…t]歸并到p1[s…t]*/
}
}
void MergeSort(S_TBL *p)
{ /*對順序表*p作歸并排序*/
MSort(p->elem,p->elem,1,p->length);
}
【效率分析】
需要一個與表等長的輔助元素數組空間,所以空間復雜度為O(n)。
對n個元素的表,將這n個元素看作葉結點,若將兩兩歸并生成的子表看作它們的父結點,則歸并過程對應由葉向根生成一棵二叉樹的過程。所以歸并趟數約等于二叉樹的高度-1,即log2n,每趟歸并需移動記錄n次,故時間復雜度為O(nlog2n)。
基數排序:
基數排序是一種借助于多關鍵碼排序的思想,是將單關鍵碼按基數分成“多關鍵碼”進行排序的方法。
多關鍵碼排序:
設n個元素的待排序列包含d個關鍵碼{k1,k2,…,kd},則稱序列對關鍵碼{k1,k2,…,kd}有序是指:對于序列中任兩個記錄r[i]和r[j](1≤i≤j≤n)都滿足下列有序關系:
其中k1稱為最主位關鍵碼,kd稱為最次位關鍵碼。
多關鍵碼排序按照從最主位關鍵碼到最次位關鍵碼或從最次位到最主位關鍵碼的順序逐次排序,分兩種方法:
最高位優先(Most Significant Digit first)法,簡稱MSD法:先按k1排序分組,同一組中記錄,關鍵碼k1相等,再對各組按k2排序分成子組,之后,對后面的關鍵碼繼續這樣的排序分組,直到按最次位關鍵碼kd對各子組排序后。再將各組連接起來,便得到一個有序序列。撲克牌按花色、面值排序中介紹的方法一即是MSD法。
最低位優先(Least Significant Digit first)法,簡稱LSD法:先從kd開始排序,再對kd-1進行排序,依次重復,直到對k1排序后便得到一個有序序列。撲克牌按花色、面值排序中介紹的方法二即是LSD法。
相關推薦:2010年軟件水平考試軟件設計師專題講義匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |