課堂實踐ASL博客

實踐博客

二分法查找元素
  • 1.首先定義三個位置min,mid,max
  • 2.每次從全部元素所處位置的中間開始查找(全部元素必須以由小及大順序排列完畢)
  • 3.當中間元素大於所查找元素時,從中間元素(mid)左半區進行查找,此時max元素由最大值變爲mid左側緊鄰的那個元素,min元素不變。
  • 4.當中間元素小於所查找元素時,從中間元素(mid)右半區進行查找,此時max位置不變,min元素由最小元素變爲mid元素的緊鄰的右側元素,max元素不變
  • 5.當所查元素與mid元素相等時,查找結束。
  • 6.當未查找到時,重複三、4步驟,直至查找到所需元素。
ASL分析
  • ASL,Average Search Length,是查找算法的查找成功時的平均查找長度的縮寫,是爲肯定記錄在查找表中的位置,需和給定值進行比較的關鍵字個數的指望值。
  • 二分法的ASL
1 2 3 4 5 6 7 8 9 10 11
05 13 19 21 37 56 64 75 80 88 92
3 4 2 3 4 1 3 4 2 3 4
  • 第一行爲索引,第二行爲元素,第三行爲查找到該元素所須要的次數。
  • 因此該元素集合的ASL=(1+2 * 2 + 3 * 4 + 4 * 4)/11=3

時間算法複雜度分析

  • 二分法每次能夠排除一半不符合要求的元素
  • 對於n個元素
  • 1.第一次剩下n/2
  • 2.第二次剩下n/4
  • 3.n次剩下n/(2^m)
  • 因此,時間複雜度爲log₂(n)
  • 補充,對於第一個,第二個數即05,13元素,他們的搜尋次數爲3和4.這取決於其具體的代碼實現,不一樣的比較順序能夠帶來不一樣的搜尋次數,例如,先從遠離最後一次中間元素開始,那麼05爲3次,從靠近最後一次中間元素開始,05就會變爲4次。
相關文章
相關標籤/搜索