《演算法分析與設計》課程作業
計算機軟體與理論 專業
題一
一、設計目的
1.掌握各種排序的基本思想。
2.掌握各種排序方法的演算法實現。
3.掌握各種排序方法的優劣分析及花費的時間的計算。
4.掌握各種排序方法所適應的不同場合。
二、設計內容和要求
利用隨機函式產生3000個隨機整數,利用選擇排序、起泡排序、快速排序、合併排序等排序方法進行排序,並統計每一種排序上機所花費的時間。
題二
一、設計目的
1.掌握雜湊表的定義。
2.掌握雜湊函式的構造。
3.掌握雜湊表的處理衝突的方法。
二、設計內容和要求
雜湊表的設計與實現
問題描述:設計雜湊表實現電話號碼查詢系統。
基本要求:
1、設每個記錄有下列資料項:電話號碼、使用者名稱、地址;
2、從鍵盤輸入各記錄,分別以電話號碼和使用者名稱為關鍵字建立雜湊表;
3、採用再雜湊法解決衝突;
4、查詢並顯示給定電話號碼的記錄;
5、查詢並顯示給定使用者名稱的記錄。
6、在雜湊函式確定的前提下,嘗試各種不同型別處理衝突的方法(至少兩種),考察平均查詢長度的變化。
題三
一、設計目的
1.學會分析問題的方法
2.掌握如何根據實際問題設計相應的演算法
3.掌握演算法的具體實現。
二、設計內容和要求
N皇后問題:在一個N×N的國際象棋棋盤中擺N個皇后,使這N個皇后不能互相被對方吃掉。
要求:
(1)依次輸出各種成功的放置方法。
(2)畫出棋盤的圖形形式,並動態的演示試探過程。
(3)程式能方便的移植到其它規格的棋盤上。
例如:在一個4×4的棋盤可以擺放的棋位置{(0,1)(1,3)(2,0)(3,2)},{(0,2)(1,0)(2,3)(3,1)}兩種。
附:課程作業報告的書寫格式
一、設計題目(任選其二)
二、執行環境(軟、硬體環境)
三、演算法設計的思想
四、演算法的流程圖
五、演算法設計分析
六、原始碼
七、執行結果分析
八、收穫及體會
徐洪珍 副教授