20172311-ASL測試 2018-1938872補充博客
阿新 • • 發佈:2018-10-13
urn ati rgs 線性 pri 思考 原理 ava 意義
20172311-ASL測試 2018-1938872補充博客
課程:《程序設計與數據結構》
班級: 1723
姓名: 趙曉海
學號: 20172311
實驗教師:王誌強老師
測試日期:2018年10月12日
必修/選修: 必修
測試內容
已知線性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?
(本題目2分,要求寫出結題過程)
測試過程及結果
測試過程中遇到的問題和解決過程
- 問題1:什麽是ASL
問題1解決方案:通過詢問同學得知:
問題2:需對折半查找法進行了解
問題2解決方案:通過查閱相關資料找到了一個較好理解的折半查找方法的實現如下:
//查找一給定的值是否在指定的數組中,如果存在輸出在數組中的下標,如果不存在則輸出-1 public?static?int?getIndex(int?target,?int[]?array)?{ if?(array?==?null?||?array.length?==?0) return?-1; if?(target?<?array[0]?||?target?>?array[array.length?-?1]) return?-1; int?left?=?0; int?right?=?array.length?-?1; int?mid?=?(left?+?right)?/?2; while?(left?<=?right)?{ if?(target?<?array[mid]) right?=?mid?-?1; if?(target?>?array[mid]) left?=?mid?+?1; if?(target?==?array[mid]) return?mid; mid?=?(left?+?right)?/?2; } return?-1; } public?static?void?main(String[]?args)?{ int?num[]?=?{?2,?3,?4,?6,?10,?20,?31,?35,?42,?53,?60,?90?}; System.out.println(getIndex(7,?num)); }
思考
這次實驗的內容還是很有意義的,比較深入的學習了折半查找法的原理及實現!!
參考資料
- 用java實現的簡單的二分查找算法
20172311-ASL測試 2018-1938872補充博客