JSFiddle - React, Tailwind, and code Playground

by MimiE

HTML

<h4>
  Sorting: Assignment 8
</h4>

Enter a String Here:
<input type="textbox" id="input" />
<input type="button" value="Insert String" onclick="insertSort();">
<br/><br/>
<input type="button" value="Randomized List" onclick="createRandomList();" /><input type="button" value="Merge Sort" onclick="mergeSort();" /><input type="button" value= "bubbleSort" onclick="bubbleSort();" />

<div id="output"></div>
<div id="output1"></div>
<div id="output2"></div>
<div id="output3"></div>

JavaScript

function List() {
  this.head = null;
  this.length = 0;
}

function Node(_data) {
  this.data = _data;
  this.next = null;
}

List.prototype.push = function(_data) {
  var node = new Node(_data);
  var currentNode = this.head;

  if (!currentNode) {
    this.head = node;
    this.length++;

    return node;
  }
  while (currentNode.next) {
    currentNode = currentNode.next;
  }
  currentNode.next = node;
  this.length++;
  return node;
}

List.prototype.pop = function() {
  var length = this.length;

  if (this.head == null) {
    return null;
  }
  var popN = this.head;
  this.head = this.head.next;
  this.length--;
  return popN.data;
}

var list = new List();

function mergeS(_list) {
  var length = _list.length;
  if (length < 2) return _list;
  var left = new List();
  var right = new List();
  var i = 0;
  var node = _list.head;
  while (node != null) {
    if (i < length / 2) {
      left.push(node.data);
    } else {
      right.push(node.data);
    }
    i++;
    node = node.next;
  }
  return merge(mergeS(left), mergeS(right));
}

function merge(left, right) {
  var result = new List();
  while ((left.head != null) && (right.head != null)) {
    if (left.head.data <= right.head.data) {
      result.push(left.pop());
    } else {
      result.push(right.pop());
    }
  }
  while (left.head != null) {
    result.push(left.pop());
  }
  while (right.head != null) {
    result.push(right.pop())
  }
  return result;
}

function bubbleSort(_list) {

  var i = _list.head
  var j = i.next;
  console.log("i is: " + i.data);
  console.log("j is: " + j.data);
  for (i = _list.head; i != null; i = i.next) {
    for (j = i.next; j != null; j = j.next) {
      if (i.value > j.data) {
        var temp = i.data;
        i.data = j.data;
        j.data = temp;
      }
    }
  }
  return _list;
}
function createRandomList() {
  var list = new List();
  
  for (var num = 0; num <= 19; num++) {
   var randomString = "";
   var possible = "abcdefghijklmnopqrstuvwxyz";
   ...