1、冒泡排序
1 var arr = [9, 7, 5, 3, 1]; 2 for (var i = 0; i < arr.length - 1; i++) { 3 for (var j = 0; j < arr.length - 1 - i;j++) { 4 if (arr[j] > arr[j + 1]) { 5 var temp = arr[j]; 6 arr[j] = arr[j + 1]; 7 arr[j + 1] = temp; 8 } 9 } 10 } 11 console.log(arr);
2、选择排序
function selectSort(arr){ for(var i=0;i<arr.length-1;i++){ var minIndex = i; for(var j=i+1;j<arr.length;j++){ if(arr[minIndex] > arr[j]){ minIndex = j; } } if(i!=minIndex){ var tmp = arr[minIndex]; arr[minIndex] = arr[i] ; arr[i] = tmp; } } return arr; } console.log(selectSort(arr));
3.快速排序
var quickSort = function(arr){ if(arr.length <=1){ return arr; } var pivotIndex = Math.floor(arr.length/2);//找基准点 var pivot = arr.splice(pivotIndex,1)[0];//从pivotIndex位开始删除1位 6 var left = []; var right = []; for (var i = 0; i < arr.length; i++) { if(arr[i] < pivot){ left.push(arr[i]); }else{ right.push(arr[i]); } } return quickSort(left).concat([pivot],quickSort(right));//拼接 } console.log(quickSort([3,5,1,6,8,2]));
4.数组的排序方法 sort()+比较函数
var arr=[33,44,11,22]; arr.sort(function(num1,num2){ return num1-num2; }) //[11,22,33,44] //整个方法是按照 ASCII码进行比较的。