Sorting__

QuickSort() MergeSort()

by dhizzybusy

HTML

<button id="bRandom">Create Randomized String List</button>
<button id="bIns">Insertion Sort</button>
<button id="bQuick">Quick Sort</button><hr/>
<button id="bnString">Insert new string</button>
<input type="text" id="newString" placeholder="Enter String">
<hr>
<textarea id="listArea" cols = "50" rows="20"></textarea>

JavaScript

bQuick = document.getElementById("bQuick");
bIns = document.getElementById("bIns");
bRand = document.getElementById("bRandom");
bnString = document.getElementById("bnString");
newString = document.getElementById("newString");

//adding event listeners
bRand.addEventListener("click", createList);
bQuick.addEventListener("click", sortQuick);
bIns.addEventListener("click", sortIns);
bnString.addEventListener("click", insertNew);

//list storage
var list = [];

function createList(){  
  list = [];
  //populating list
	for(i=0;i<20;i++){
  	var str = Math.random().toString(36).substring(10);
  	list.push(str);
  }
  updateVisual();  
}

function updateVisual(){
//update text area
	var data="";
  for(i=0;i<list.length;i++){
  	data += list[i] + "\n";
  }
  
	document.getElementById("listArea").value = data;
}

function sortQuick(){
	Quick.sort(list);
  updateVisual();
}

function sortIns(){
	insertionSort(list);
  updateVisual();
}

function insertNew(){
	list.push(newString.value);
  sortQuick();
}


function insertionSort(array)
{
    for(var i = 1; i < array.length; ++i)
    {
        var item = array[i];
        for(var j = i - 1; j >= 0; --j)
        {
            if(array[j] <= item) break;
            array[j + 1] = array[j];
        }
        array[j + 1] = item;
    }
    return array;
}

var Quick= (function() {

  function swap(array, indexA, indexB) {
    var temp = array[indexA];
    array[indexA] = array[indexB];
    array[indexB] = temp;
  }

  function partition(array, pivot, left, right) {

    var storeIndex = left,
        pivotValue = array[pivot];

    swap(array, pivot, right);

    for(var v = left; v < right; v++) {
      if(array[v] < pivotValue) {
        swap(array, v, storeIndex);
        storeIndex++;
      }
    }
    swap(array, right, storeIndex);
    return storeIndex;
  }

  function sort(array, left, right) {

    var pivot = null;

    if(typeof left !== 'number') {
      left = 0;
    }

    if(typeof right !== 'number') {
     ...