Sorting_v1
Sorting
by dhizzybusy
HTML
<h1>
<Center>List and Sorting </Center>
</h1>
<br><br/>
<table>
<tr>
<td> <input type="button" id="CreateList" value="Create Randomize string List " onClick="createList();" /></td>
</tr>
<tr>
<td> <input type="button" id="MergeSort" value="MergeSort" onClick="MergeSort();" /></td>
</tr>
<tr>
<td><input type="button" id="BubbleSort" value="BubbleSort" onClick="BubbleSort();" /></td>
</tr>
<tr>
<td> <input type="textbox" id="StringName" Value="Enter String Here" /> <input type="button" id="AddString" value="Insert String" onClick="addNode();" /></td>
</tr>
</table>
<br/><br/> Name of Node being added:
<div id="output">
</div>
JavaScript
var DoubleLinkedList = function() {
this.head = 0;
this.tail = 0;
this.length = 0;
this.next=null;
var LinkedListNode = function(content) {
this.next = 0;
this.last = 0;
this.content = content;
};
this.add = function(content) {
if (this.head == 0) {
this.head = new LinkedListNode(content);
return this.head;
}
if (this.tail == 0) {
this.tail = new LinkedListNode(content);
this.head.next = this.tail;
this.tail.last = this.head;
return this.tail;
};
this.tail.next = new LinkedListNode(content);
this.tail.next.last = this.tail;
this.tail = this.tail.next;
this.tail.next = 0;
return this.tail;
};
}
DoubleLinkedList.prototype.length = function() {
var i = 0;
var node = this.head;
while (node != 0) {
i++;
node = node.next;
}
return i;
};
DoubleLinkedList.prototype.mergeSort=function(list){
if (list.head == 0)
return list;
var count=list.length;
var countList=list.head;
var leftPart=countList;
var leftPointer=countList;
var rightPart=null;
var rightPointer=null;
var mid=0;
console.log(leftPointer.next)
mid= Math.floor(count/2)
console.log(mid)
var count2=0;
while (count2<mid){
count2++;
leftPointer=leftPointer.next;
}
rightPart=new DoubleLinkedList();
rightPart.add(leftPointer.next);
leftPointer.next=null;
return this._mergeSort(this.mergeSort(leftPart),this.mergeSort(rightPart.head))
}
DoubleLinkedList.prototype._mergeSort=function(left,right){
var result= new DoubleLinkedList();
var resultPointer=result.head;
var pointerLeft=left;
var pointerRight=right;
while (pointerLeft && pointerRight){
var tempNode=null;
if( pointerLeft.content>...