冒泡排序:
var arr = [];
for(var i = 0;i < 10;i++){
arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var temp;
for(var i = 0;i < arr.length; i++){
for(var j = 0; j < arr.length-1-i; j++){
if(arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
选择排序:
var arr = [];
for(var i = 0;i < 1000;i++){
arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var temp,min;
for(var i = 0;i < arr.length-1; i++){
min = i;
for(var j = i+1; j < arr.length; j++){
if(arr[j] < arr[min]){
min = j;
}
}
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
console.log(arr);
插入排序:
var arr = [];
for(var i = 0;i < 10;i++){
arr[i] = Math.floor(Math.random()*101);
}
console.log(arr);
var min,temp;
for(var i = 0;i < arr.length-1 ; i++){
if(arr[i]>arr[i+1]){
min = i+1;
temp = arr[min];
var j = i;
while(arr[j] >= temp&&j>=0){
arr[j+1] = arr[j];
j--;
}
arr[j+1]=temp;
}
}
console.log(arr);
希尔排序:
var arr = [];
for(var i = 0;i < 4;i++){
arr[i] = Math.floor(Math.random()*101);
}
var interval= [5,3,1];
console.log(arr);
var start = new Date().getTime();
var temp,mim;
for(var g = 0;g < interval.length; g++){
for(var i = 0; i < arr.length ; i++){
for(var j = i; j < arr.length; j += interval[g]){
if(arr[j]>arr[j+interval[g]]){
min = j+interval[g];
temp = arr[min];
var k = j;
while(arr[k] >= temp&&k>=0){
arr[k+interval[g]] = arr[k];
k-=interval[g];
}
arr[k+interval[g]]=temp;
}
}
}
}
var stop = new Date().getTime();
console.log(arr);
console.log(stop-start);
快速排序:
function qSort(arr){
if(arr.length==0){
return [];
}
var left = [];
var right = [];
var baseRoot = arr[0];
for(var i = 1;i < arr.length ; i++){
if(arr[i]>baseRoot){
right.push(arr[i]);
}else{
left.push(arr[i]);
}
}
return qSort(left).concat(baseRoot,qSort(right));
}