實驗四排序的基本操作與實現
一、實驗目的
1. 複習c語言中指標、結構體、子程式呼叫等基礎知識;
2. 掌握常用的排序方法,並掌握用c語言實現排序演算法的方法;
3. 深刻理解排序的定義和各種排序方法的特點,並能加以靈活應用;
4. 了解各種方法的排序過程及其時間複雜度的分析方法。
二、實驗裝置
微機三、預習要求
1. 複習c語言中指標的用法,特別是結構體的指標的用法;
2. 理解各種常用的內部排序演算法以及外部排序演算法的一般步驟,如直接插入排序、希爾排序、簡單選擇排序、堆排序等等;
3. 複習各種方法的排序過程及其時間複雜度的分析方法;
4. 掌握各種排序演算法在解決實際問題的一般方法和步驟。
四、實驗內容
1. 內容:學生統計成績
給出n個學生的考試成績表,每條資訊由姓名和分數組成,試設計乙個演算法:
1> 按分數高低次序,列印出每個學生在考試中獲得的名次,分數相同的為同一名次;
2> 按名次列出每個學生的姓名與分數。
2. 實驗提示:為了完成學生成績的統計,程式需要完成以下三個步驟
1. 定義結構體。
2. 定義結構體陣列。
3. 定出主程式,對資料進行排序。
例如#define n 30
typedef struct student
student r[n];
/* 實現各種排序演算法 */
int main ( )
3. 實驗要求:
1. 採用快速排序演算法解決本問題。
3. 使用其它至少2種排序演算法實現該問題(如直接插入排序、希爾排序、簡單選擇排序、堆排序等)。
3. 比較各種排序演算法的優缺點。
五、實驗報告
1. 問題描述: 包括目標、任務、條件和約束的描述。
2. 設計:
⑴ 資料結構設計和核心演算法設計描述;
⑵ 各個程式模組必須要有相應的注釋;
⑶ 主要程式模組的輸入、處理(演算法框架描述)和輸出描述;
⑷ 主要程式之間的呼叫與被呼叫關係等。
3. 測試: 測試範例,測試結果,測試結果的分析與討論,測試過程中遇到的主要問題及所採用的解決措施.
4. 使用說明和作業小結:
⑴ 使用說明主要描述如何使用你的程式以及使用時的主要事項;
⑵ 在小結中說明程式的改進思想、經驗和體會,並回答教師布置的討論題。
5. 列印乙份程式清單及執行示例的結果。
6. 將以上各項文字材料及程式清單等裝訂成冊,形成乙個完整的實驗報告。
資料結構課內實驗報告
2013年 11月 22 日 目錄實驗一結構體程式設計 1 1 演算法思想描述 1 2 操作演算法的實 1 3 主測試程式 1 4 執行結果 2 實驗二線性表 3 1 演算法思想描述 3 2 操作演算法的實現 3 3 主測試程式 5 4 執行結果 5 實驗三堆疊 6 1 演算法思想描述 6 2 操作...
資料結構上機實驗四
實驗內容 廣義表的基本操作 實驗要求 1 廣義表的建立與顯示要作為函式被呼叫.2 把自己使用的廣義表結構明確的表達出來.3 基本上實現每個實驗題目的要求.分組要求 可單獨完成,也可兩人一組。實驗目的 1 熟悉c c 基本程式設計,培養動手能力.2 通過實驗,加深對廣義表的理解.評分標準 1 只完成第...
資料結構實驗四報告
實驗名稱 實驗四 題目二 學生姓名 班級 班內序號 學號 日期 2013年12月16日 1 實驗要求 使用鍊錶實現下面各種排序演算法,並進行比較。排序演算法 1 插入排序 2 氣泡排序 3 快速排序 4 簡單選擇排序 5 其他 要求 1 測試資料分成三類 正序 逆序 隨機資料 2 對於這三類資料,比...