javascript算法学习(直接插入排序)

xiekch 2011-04-12

1、基本思想
 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。

代码如下:

<!doctype html> 
<html> 
<head><title>javascript直接插入排序</title> 
<meta charset = "utf-8" /> 
</head> 
<body> 
<script> 
var arr = []; 
for(var i=0;i<20;++i) 
{ 
arr.push(~~(Math.random()*20)); 
} 
document.write(arr+"<br/>"); 
Array.prototype.insertionSort = function() 
{ 
var j; 
var value; 
for(var i=1;i<this.length;i++) 
{ 
j=i; 
value = this[j]; 
while(j>0 && this[j-1]>value) 
{ 
this[j] = this[j-1]; 
j--; 
} 
this[j] = value; 
} 
} 
arr.insertionSort(); 
document.write(arr+"<br/>"); 
</script> 
</body> 
</html>

相关推荐