js 实现各种排序

时间:2023-12-23 18:20:19

一 冒泡排序

一万个随机数排序五次执行时间分别为 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);
;
}