Advertisement
rgruber

binarySearch

Dec 25th, 2022 (edited)
944
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.56 KB | Source Code | 0 0
  1. function binarySearch(array, target) {
  2.   let left = 0;
  3.   let right = array.length - 1;
  4.  
  5.   while (left <= right) {
  6.     const middle = Math.floor((left + right) / 2);
  7.     if (array[middle] === target) {
  8.       return middle;
  9.     }
  10.     if (array[middle] < target) {
  11.       left = middle + 1;
  12.     } else {
  13.       right = middle - 1;
  14.     }
  15.   }
  16.  
  17.   return -1;
  18. }
  19.  
  20. // Beispiel für die Verwendung der Funktion:
  21. const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  22. console.log(binarySearch(numbers, 5)); // gibt "4" aus (der Index des Elements 5 im Array)
  23. console.log(binarySearch(numbers, 11)); // gibt "-1" aus (das Element 11 ist nicht im Array enthalten)
  24.  
  25.  
  26. function closestValue(array, target) {
  27.   let left = 0;
  28.   let right = array.length - 1;
  29.  
  30.   while (left <= right) {
  31.     const middle = Math.floor((left + right) / 2);
  32.     if (array[middle] === target) {
  33.       return middle;
  34.     }
  35.     if (array[middle] < target) {
  36.       left = middle + 1;
  37.     } else {
  38.       right = middle - 1;
  39.     }
  40.   }
  41.  
  42.   // Wenn das Zielelement nicht gefunden wurde, gibt die Funktion den Wert zurück,
  43.   // der dem Ziel am nächsten kommt (entweder der linke oder der rechte Wert neben der Teilung)
  44.   return array[left] - target < target - array[right] ? left : right;
  45. }
  46.  
  47. // Beispiel für die Verwendung der Funktion:
  48. const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  49. console.log(closestValue(numbers, 5.5)); // gibt "4" aus (der Index des Elements 5 im Array)
  50. console.log(closestValue(numbers, 11)); // gibt "9" aus (der Index des Elements 10 im Array)
  51.  
  52.  
  53.  
  54.  
  55. // https://chat.openai.com/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement