1. 程式人生 > >數組排序的方法

數組排序的方法

分配 .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))



// 冒泡排序:兩兩比較,以升為例,一直比到最後一項 // splice() // 參數1:index:正數 刪除的位置,負數從結尾開始算 // 參數2:必須,要刪除的數量,設置為0不會刪除項目 // 參數3:可選,向數組中添加新的項目 // var arr = [1,8,9,2,7,6] // function bubblesort(arr){ // for(var i=arr.length-1;i>0;i--){ // for(var j=0;j<i;j++){ // if(arr[j]>arr[j+1]){ // var temp = arr[j] // arr.splice(j,1,arr[j+1]) // arr.splice(j+1,1,temp) // } // } // } // return arr; // }



// 選擇排序:將當前未確定的模塊中的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();

數組排序的方法