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";
}

更新時間:19-Jun-2020

10 千次+ 瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始入門
廣告
© . All rights reserved.