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";
...