js 实现各种排序
一 冒泡排序
一万个随机数排序五次执行时间分别为 362 389 361 372 408 毫秒
var arr=[]; for(var j=0;j<10000;j++){ arr.push(Math.floor(10*Math.random())); } var curr=+ new Date(); function bubble_Sort(arr){ //362 389 361 372 408 for(var i=0;i<arr.length-1;i++){ for(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; } } } } bubble_Sort(arr); console.log(+ new Date()-curr);
二插入排序
一万个随机数排序五次执行时间分别为 62 62 68 65 102 毫秒
时间复杂度为O(n^2)是稳定的排序方法
var arr = []; for (var j = 0; j < 10000; j++) { arr.push(Math.floor(10 * Math.random())); } var curr = +new Date(); function insert_Sort(arr) {//62 62 68 65 102 for(var i=1;i<arr.length;i++) { var temp = arr[i]; for (var j = i; j > 0 && arr[j - 1] > temp; j--) { arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } insert_Sort(arr); console.log(+new Date() - curr);
;
}