Divide et Impera

Imparte si cucereste

by MariusNastasa

HTML

<h3>Divide et Impera (Merge Sort)</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>

CSS

body {
  background-color: moccasin;
}

h3 {
  color: #ff8000;
  font-variant: small-caps;
}

placeholder {
  font-variant: small-caps;
}

button {
  border-radius: 18px;
  border-style: solid
}

button:hover span:after {
  opacity: 1;
  right: 0;
}

h2 {
  font-variant: small-caps;
}

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 clear(){

}