Javascript中的常见排序算法

2019-06-03 00:49:21王振洲

 } 
 for (var i = s; i <= e; ++i) this[i] = b[i]; 
 } 
 Array.prototype.heapSort = function() 
 { 
 for (var i = 1; i < this.length; ++i) 
 { 
 for (var j = i, k = (j - 1) >> 1; k >= 0; j = k, k = (k - 1) >> 1) 
 { 
 if (this[k] >= this[j]) break; 
 this.swap(j, k); 
 } 
 } 
 for (var i = this.length - 1; i > 0; --i) 
 { 
 this.swap(0, i); 
 for (var j = 0, k = (j + 1) << 1; k <= i; j = k, k = (k + 1) << 1) 
 { 
 if (k == i || this[k] < this[k - 1]) --k; 
 if (this[k] <= this[j]) break; 
 this.swap(j, k); 
 } 
 } 
 } 
 function generate() 
 { 
 var max = parseInt(txtMax.value), count = parseInt(txtCount.value); 
 if (isNaN(max) || isNaN(count)) 
 { 
 alert("个数和最大值必须是一个整数"); 
 return; 
 } 
 var array = []; 
 for (var i = 0; i < count; ++i) array.push(Math.round(Math.random() * max)); 
 txtInput.value = array.join("n"); 
 txtOutput.value = ""; 
 } 
 function demo(type) 
 { 
 var array = txtInput.value == "" ? [] : txtInput.value.replace().split("n"); 
 for (var i = 0; i < array.length; ++i) array[i] = parseInt(array[i]); 
 var t1 = new Date(); 
 eval("array." + type + "Sort()"); 
 var t2 = new Date(); 
 lblTime.innerText = t2.valueOf() - t1.valueOf(); 
 txtOutput.value = array.join("n"); 
 } 
</script> 
</head> 
<body onload="generate();"> 
<table style="font-size:12px;"> 
<tr> 
 <td align="right"> 
 <textarea id="txtInput" style="width:120px;height:500px;" readonly></textarea>