var swap = function(array,a,b){
var tmp = array[a];
array[a] = array[b]
array[b] = tmp;
}
var selectionSort = function(array){
//注意不要把min这个全局变量定义在循环内
for(var i=0,n=array.length,min = 0;i<n;i++){
for(var j=i+1;j<n;j++){
if(array[min]>array[j]){
min = j;
}
}
if (i != min){
swap(array, min, i);
}
}
}
<!doctype html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="utf-8"/>
<title>选择排序 by 司徒正美</title>
<script type="text/javascript" charset="utf-8">
window.onload = function(){
var assert ,item,test = function(str){
if(!assert){
assert = document.createElement("ol");
assert.i = 0;
item = document.createElement("li");
document.body.insertBefore(assert,null);
}
var li = item.cloneNode(false);
assert.appendChild(li);
li.innerHTML = str;
assert.i++;
li.style.backgroundColor = assert.i%2 === 1? "#e6e6e6" : "#D0E4FC";
};
var swap = function(array,a,b){
var tmp = array[a];
array[a] = array[b]
array[b] = tmp;
}
var selectionSort = function(array){
//注意不要把min这个全局变量定义在循环内
for(var i=0,n=array.length,min = 0;i<n;i++){
for(var j=i+1;j<n;j++){
if(array[min]>array[j]){
min = j;
}
}
if (i != min){
swap(array, min, i);
}
}
}
var randArray = [];
for(var i=0; i<30; i++)
randArray[i]=Math.floor((Math.random())*100);
document.write('快速排序:
'); test('
未排序之前 '+randArray.join(" ")); selectionSort(randArray); test('
排序之后 '+randArray.join(" ")); } </script> </head> <body> </body> </html>
运行代码
