1. 程式人生 > >20172311-ASL測試 2018-1938872補充博客

20172311-ASL測試 2018-1938872補充博客

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補充博客