高普考題庫
103 年 103年公務人員高等考試三級考試暨普通考試・資料結構
申論 1給一個排序好的陣列(Sorted Array)A[low...high],當我們要搜尋一個元素X 是否在此陣列A 中,二元搜尋法(Binary Search)是檢查陣列的中間位置的元素A[next], next=(low+high)/2,和X 做比較,並依比較結果作下列更新。Case:A[next]=X:returnA[next]>X:high next-1A[next]<X:low next+1重複上述步驟搜尋更新的陣列A[low...high]直到找到X 或確認X 不是在此陣列A 中。若我們設計一個新的搜尋法來修改二元搜尋法,每次都是以下列方式選取A[next]。next←low+(high-low) * (X-A[low])/(A[high]-A[low])其他步驟都和二元搜尋相同。請回答下列問題:(每小題5 分,共15 分)新的搜尋法特色為何?請說明之。新的搜尋法在何種情形下,會比二元搜尋的搜尋速度為佳?請說明之。新的搜尋法,在最差的情況下,它的執行時間複雜度為多少?原因為何?假設陣列A 中有n 個元素。