Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

โปรแกรม Binary Search ใน JavaScript

สร้างฟังก์ชัน binarySearch() รับ 4 อาร์กิวเมนต์

  • อาร์เรย์ตัวเลข/สตริง ที่เรียงแล้ว
  • ดัชนีเริ่มต้นของอาร์เรย์ (0)
  • ดัชนีสุดท้ายของอาร์เรย์ (length - 1)
  • ตัวเลขที่จะค้นหา

ถ้าตัวเลขมีอยู่ในอาร์เรย์ คืนดัชนี มิฉะนั้นคืน -1 โค้ดเต็ม

ตัวอย่าง

const arr = [2,4,6,6,8,8,9,10,13,15,17,21,24,26,28,36,58,78,90];
// binary search function
// คืน index ถ้าพบ มิฉะนั้น -1
const binarySearch = (arr, start, end, num) => {
  const mid = start + Math.floor((end - start)/2);
  if(start <= end){
    if(arr[mid] === num){
      return mid;
    }
    if(num < arr[mid]){
      return binarySearch(arr, start, mid-1, num);
    }
    if(num > arr[mid]){
      return binarySearch(arr, mid+1, end, num);
    }
  }
  return -1;
};
console.log(binarySearch(arr, 0, arr.length-1, 13));
console.log(binarySearch(arr, 0, arr.length-1, 11));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น

8
-1