var a =(function(){var a =[];functionrandomInt(from, to){returnparseInt(Math.random()*(to -from+1)+from);}for(var i =0; i <10000; i++){
a.push(randomInt(0,1000000))}return a;})();
2.插入排序
functioninsertionSort(){var date =newDate();for(var i =1; i < a.length; i++){var temp = a[i];for(var j = i -1; j >=0&& a[j]> temp; j--){
a[j +1]= a[j];}
a[j +1]= temp;}
console.log("插入排序的时间:"+(newDate()- date));}
3.希尔排序
functionshellSort(){var date = Date.now();for(var gap = a.length >>1; gap >0; gap >>=1){for(var i = gap; i < a.length; i++){var temp = a[i];for(var j = i - gap; j >=0&& a[j]> temp; j -= gap){
a[j + gap]= a[j];// console.log(a[j])}
a[j + gap]= temp;
console.log(a[i],a[j])
console.log(a)}}
console.log("希尔排序的时间:"+(newDate()- date));}
4.归并
functionmerge(a, b, lo, mid, hi){//每次归并前,都需要先把a中的数据copy到b中。for(var i =0; i < a.length; i++){
b[i]= a[i];}var i = lo, j = mid +1;for(var k = lo; k <= hi; k++){if(i > mid){
a[k]= b[j++];}elseif(j > hi){
a[k]= b[i++];}elseif(b[i]< b[j]){
a[k]= b[i++];}else{
a[k]= b[j++]}}}