數組排序的方法
阿新 • • 發佈:2017-11-30
分配 .so 對數 for div 個數 spl dex splice sort()對數組排序,不開辟新的內存,對原有數組元素進行調換
// 1、簡單數組簡單排序 .sort()
// var arrSimple = [1,8,7,6,11]
// function order(value1,value2){
// return value1-value2;
// }
// console.log( arrSimple.sort(order))
// 選擇排序:將當前未確定的模塊中的max和min取出來插到最前面或者後面
// var arr = [1,8,9,11,2,7,6]
// function bubblesort(array){
// for(var i=0;i<arr.length;i++){
// var min = arr[i]
// var minIndex = i
// for(var j = i+1;j<arr.length;j++){
// if(min>arr[j]){
// min = array[j];
// minIndex = j;
// }
// }
// arr.splice(i,0,min);
// arr.splice(minIndex+1,1)
// console.log(arr)
// }
// return arr;
// }
// 插入排序:選擇已經排好序的數組,與之相對比,直到找到小於他的一項,將其插入到這項前面
// function inserSort(arr){
// var start = 1;
// for(var i=start;i<arr.length;start++,i++){
// for(j=0;j<start;j++){
// if(arr[i]<=arr[j]){
// arr.splice(j,0,arr[i])
// arr.splice(i+1,1)
// break;
// }
// }
// }
// }
// 快速排序
// var times=0;
// var arr = [1,3,9,2,5,8,13]
// var quickSort=function(arr){
// //如果數組長度小於等於1無需判斷直接返回即可
// if(arr.length<=1){
// return arr;
// }
// var midIndex=Math.floor(arr.length/2);//取基準點
// var midIndexVal=arr.splice(midIndex,1);//取基準點的值,splice(index,1)函數可以返回數組中被刪除的那個數arr[index+1]
// var left=[];//存放比基準點小的數組
// var right=[];//存放比基準點大的數組
// //遍歷數組,進行判斷分配
// for(var i=0;i<arr.length;i++){
// if(arr[i]<midIndexVal){
// left.push(arr[i]);//比基準點小的放在左邊數組
// console.log(left +‘-----------1111111111111‘)
// }
// else{
// right.push(arr[i]);//比基準點大的放在右邊數組
// console.log(right+‘----------------22222222222222‘)
// }
// console.log("第"+(++times)+"次排序後:"+arr);
// }
// //遞歸執行以上操作,對左右兩個數組進行操作,直到數組長度為<=1;
// return quickSort(left).concat(midIndexVal,quickSort(right));
// var arr1 = quickSort(left).concat(midIndexVal,quickSort(right));
// console.log(arr1)
// };
// console.log(quickSort(arr));
for(i=0;i<5;i++){ setTimeout(function(){ console.log(i) },1000) } // function makeFn(){ // var num = 0; // function f(){ // num++; // console.log(num); // } // return f; // } // var func = makeFn();
數組排序的方法