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)必須按關鍵字大小有序排列
  • 原理:將數組分爲三部分,依次是中值(所謂的中值就是數組中間位置的那個值)前,中值,中值後;將要查找的值和數組的中值進行比較,若小於中值則在中值前面找,若大於中值則在中值後面找,等於中值時直接返回。而後依次是一個遞歸過程,將前半部分或者後半部分繼續分解爲三部分。
  • 實現:二分查找的實現用遞歸和循環兩種方式。

解題過程

參考資料

相關文章
相關標籤/搜索