{"ScriptPreparationCode":"var binarySearch = (items, comparator) =\u003E {\r\n let start = 0;\r\n let end = items.length - 1;\r\n\r\n while(start \u003C= end) {\r\n const mid = Math.floor((start \u002B end) / 2);\r\n const result = comparator(items[mid]);\r\n if (result === 0) return mid;\r\n else if (result \u003C 0) start = mid \u002B 1;\r\n else end = mid - 1;\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nvar numbers = [...Array(100_000_000)].reduce((acc, _) =\u003E {\r\n const prev = acc.length ? acc[acc.length - 1] : 0;\r\n acc.push(prev \u002B Math.round(Math.random() * 100));\r\n return acc;\r\n}, []);\r\n\r\nvar randomPosition = Math.floor(Math.random() * numbers.length);\r\nvar target = numbers[randomPosition];","TestCases":[{"Name":"Linear Search ","Code":"var index = numbers.findIndex(num =\u003E num === target);","IsDeferred":false},{"Name":"Binary Search","Code":"var position = binarySearch(numbers, num =\u003E num - target);","IsDeferred":false}]}