Divide et Impera (Bars)

by MariusNastasa

HTML

<h3>Divide et Impera (Binary Search)</h3>
<input type="number" id="number" />
<button onClick="addToArray()">Add Number</button>
<hr> Numerele sunt:
<div id="array"></div>
<hr>
<button onclick='document.getElementById("result").innerHTML = mergeSort(a)'>SORT</button>
<div id="result"></div>
<br>
<hr>
<input type="number" placeholder="Valoarea de cautare" id="searchNumber">
<button onclick='document.getElementById("resultBinarySearch").innerHTML = binarySearch(document.getElementById("searchNumber").value)' id="button">Binary Search</button>
<div id="resultBinarySearch"></div>
<button onclick="addBox()">Add Box</button>
<div id="array" class="bars"></div>
<button onclick='displayBox(array)' id="button">Display</button>
<hr>

JavaScript

var a = [];

function addToArray() {
  var number = document.getElementById("number").value;
  a.push(Number(number));
  document.getElementById("array").innerHTML = a;
}

function mergeSort(a) {
  if (a.length < 2) {
    return a;
  }
  var mijloc = parseInt(a.length / 2);
  var stanga = a.slice(0, mijloc);
  var dreapta = a.slice(mijloc, a.length);
  return merge(mergeSort(stanga), mergeSort(dreapta));
}

function merge(s, d) {
  var result = [];
  while (s.length && d.length) {
    if (s[0] <= d[0]) {
      result.push(s.shift())
    } else {
      result.push(d.shift())
    }
  }
  while (s.length) {
    result.push(s.shift())
  }
  while (d.length) {
    result.push(d.shift())
  }
  return result;
}

function binarySearch(v) {
  var low = 0;
  var high =a.length - 1;
  var mid = parseInt((low + high) / 2);
  while (low <= high && a[mid] != v) {
    if (a[mid] < v) {
      low = mid + 1;
      mid = parseInt((low + high) / 2);
    } else {
      high = mid - 1;
      mid = parseInt((low + high) / 2);   
      console.log(mid);
    }
  }
  if(low>high){
  mid="Nu s-a gasit"
  }else{
  return mid;
  }
}

 var low = 0;
 var high =a.length - 1;
 var mid = parseInt((low + high) / 2);

function displayBoxArray(array, high, low) {
	var boxOfNumbers = document.createElement("div");
	for (var i=0; i < array.length; i++) {
		var divNumber = document.createElement("div");
		divNumber.appendChild(document.createTextNode(array[i]));
		divNumber.setAttribute("style", "background:red;width:15px;heigth:15px;margin:2px;display:inline-block;align:");
		boxOfNumbers.appendChild(divNumber);
	}
	document.body.appendChild(boxOfNumbers);
}

displayBox(array);