1. 程式人生 > >《演算法分析與設計》課程作業

《演算法分析與設計》課程作業

計算機軟體與理論 專業

題一

一、設計目的

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)}兩種。

附:課程作業報告的書寫格式

一、設計題目(任選其二)

二、執行環境(軟、硬體環境)

三、演算法設計的思想

四、演算法的流程圖

五、演算法設計分析

六、原始碼

七、執行結果分析

八、收穫及體會

徐洪珍 副教授