C# 中的二分查詢


二分查詢在已排序的陣列上執行。將值與陣列中間元素進行比較。如果沒有找到相等值,則消除不會出現此值的一半範圍。這樣就可以搜尋到另外一半範圍。

以下是我們陣列中的中間元素。假設我們需要找到 62,那麼左半部分將被消除,接著搜尋右半部分,如下所示 −

以下是二分查詢的複雜性 −

最差情況效能
O(log n)
最佳情況效能
O(1)
平均效能
O(log n)
最差情況空間複雜度
O(1)

示例

我們來看看實現二分查詢的方法 −

public static object BinarySearchDisplay(int[] arr, int key) {
   int minNum = 0;
   int maxNum = arr.Length - 1;

   while (minNum <=maxNum) {
      int mid = (minNum + maxNum) / 2;
      if (key == arr[mid]) {
         return ++mid;
      } else if (key < arr[mid]) {
         max = mid - 1;
      }else {
         min = mid + 1;
      }
   }
   return "None";
}

更新時間:2020-06-19

超過 10,000 次瀏覽

開啟您的職業生涯

完成課程以獲得認證

開始
廣告