JSFiddle - React, Tailwind, and code Playground
by Dmitry Morar
JavaScript
var searchInsert = function(nums, target) {
let lastEl = nums.length - 1;
let firstEl = 0;
let sort = Math.floor(lastEl / 2);
if (target >= nums[lastEl]) { //срвниваем с последним элементом
return lastEl + 1;
} else if (target <= nums[firstEl]) { // сравнивем с первым элементом
return firstEl;
} else {
if (nums[sort] === target) {
return sort;
} else if (nums[sort] < target) {
return sort + 1;
} else {
return sort - 1;
}
}
return sort
};
/* alert(searchInsert([1, 3, 5, 7], 2)); */
function BinarySearch(t,A) // t - искомый элемент,
{ // A - упорядоченный массив, в котором ищем.
var i = 0, j = A.length-1, k;
while (i <= j)
{
k = Math.floor((i+j)/2);
if (t === A[k]) return k;
else if (t < A[k]) j = k-1;
else i = k+1;
}
// На выходе индекс искомого элемента.
return -1; // Если искомого элемента нет в массиве, то -1.
}
alert(BinarySearch(1, [1, 3, 4]))