Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ค้นหาไบนารีใน C #


การค้นหาไบนารีทำงานบนอาร์เรย์ที่เรียงลำดับ ค่าจะถูกเปรียบเทียบกับองค์ประกอบตรงกลางของอาร์เรย์ หากไม่พบความเท่าเทียมกัน ค่าครึ่งหนึ่งจะถูกตัดออกโดยที่ค่านั้นไม่มีอยู่ ในทำนองเดียวกัน อีกครึ่งหนึ่งจะถูกค้นหา

นี่คือองค์ประกอบกลางในอาร์เรย์ของเรา สมมุติว่าเราต้องหา 62 ให้เจอ จากนั้นให้เอาส่วนซ้ายออกแล้วค้นส่วนขวา -

ค้นหาไบนารีใน C #

นี่คือความซับซ้อนของการค้นหาแบบไบนารี -

ประสิทธิภาพกรณีที่เลวร้ายที่สุด
O(บันทึก n)
ประสิทธิภาพเคสที่ดีที่สุด
O(1)
ประสิทธิภาพโดยเฉลี่ย
O(บันทึก 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";
}