1. 程式人生 > >20172303 2018-2019-1 《程序設計與數據結構》第5周課堂實踐報告

20172303 2018-2019-1 《程序設計與數據結構》第5周課堂實踐報告

查找算法 有序 排列 大於 繼續 ava src 存儲結構 過程

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

解題過程

技術分享圖片

參考資料

  • ASL
  • 二分查找算法(JAVA)

20172303 2018-2019-1 《程序設計與數據結構》第5周課堂實踐報告