Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
function binaryInsertion(data) {
  let i = null,
      j = null,
      x = null,
      l = null,
      r = null,
      m = null,
      arr = [...data]
      ;
  for (i = 1; i < arr.length; i++) {
    x = arr[i];
    l = 0;
    r = i;
    while (l < r) {
      m = Math.floor((l + r) / 2);
      if (arr[m] <= x) {
        l = ++m;
      } else {
        r = m;
      }
//       if (m === r) break;
    }
 
    for (j = i; j >= r+1; j--) {
      arr[j] = arr[j-1];
    };
    arr[r] = x;
  }
  return arr;
}
let numbers = [2, 6, 5, 8, 4, 1, 7, 10, 3];
console.log("binaryInsertion(arr) -- ", binaryInsertion(numbers));
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers