20172303 2018-2019-1 《程序設計與數據結構》第5周課堂實踐報告
20172303 2018-2019-1 《程序設計與數據結構》第5周課堂實踐報告
- 課程:《程序設計與數據結構》
- 班級: 1723
- 姓名: 範雯琪
- 學號:20172303
- 實驗教師:王志強
- 助教:張師瑜/張之睿
- 實驗日期:2018年10月12日
- 必修/選修: 必修
測試內容
ASL測試
- 已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?
- 要求:寫出結題過程
測試原理
ASL(Average Search Length)—— 查找算法的查找成功時的平均查找長度
- 概念:ASL是查找算法的查找成功時的平均查找長度的縮寫,是爲肯定記錄在查找表中的位置,需和給定值進行比較的關鍵字個數的指望值。
- 算法:
- P(i)= 查找表中第i個記錄的機率
- C(i)= 關鍵字與給定值相等的第i個記錄時,和給定值 進行過比較的關鍵字個數。
折半查找法(二分查找法)
- 二分查找又稱折半查找,它是一種效率較高的查找方法。
- 二分查找要求:(1)必須採用順序存儲結構 (2)必須按關鍵字大小有序排列
- 原理:將數組分爲三部分,依次是中值(所謂的中值就是數組中間位置的那個值)前,中值,中值後;將要查找的值和數組的中值進行比較,若小於中值則在中值前面找,若大於中值則在中值後面找,等於中值時直接返回。而後依次是一個遞歸過程,將前半部分或者後半部分繼續分解爲三部分。
- 實現:二分查找的實現用遞歸和循環兩種方式。
解題過程
![](http://static.javashuo.com/static/loading.gif)
參考資料
歡迎關注本站公眾號,獲取更多信息