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

นี่คือความซับซ้อนของการค้นหาแบบไบนารี -
| ประสิทธิภาพกรณีที่เลวร้ายที่สุด | 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";
}