ASL測試 課題測試博客

已知線性表具備元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?

知識點1:

  • 折半查找法:折半查找,又稱做二分查找。這個查找的算法的特色,要求數據要是有序的。而後,利用這組有序的數據之間的關係,來進行折半的查找。比方說,這組數據是升序排列的。一開始,首先對比這組數據的中間的項與所找值的關係。如果所找值>中間值,則說明所找值在中間值的右側,所以將這組數據的區間縮小爲以中間值爲最左側的小區間。而後,繼續用中間值進行比較,以此類推,最終確定會找到在數組當中與之匹配的所找值,直到區間縮小爲0還沒找到,就只能是所找值不在數組當中。

知識點2:

  • ASL:是查找算法的查找成功時的平均查找長度的縮寫。用於靜態查找表中順序表的查找。對於含有n個記錄的表,查找成功時的平均查找長度爲:算法


    P(i)=查找表中第i個記錄的機率
    C(i)=關鍵字與給定值相等的第i個記錄時,和給定值 進行過比較的關鍵字個數數組

解題步驟:

總結:

  • ASL與數組中具備元素的值無關,只與具備元素的個數有關
相關文章
相關標籤/搜索