数组排序
-
快速排序法
// 快速排序 var quickSort = function(arr) { if(arr.length < 1) {//如果数组就是一项,那么可以直接返回 return arr; } var centerIndex = Math.floor(arr.length / 2);//获取数组中间的索引 var centerValue = arr[centerIndex];//获取数组中间项 var left = [], right = []; for(var i = 0; i < arr.lenght; i++){ if(arr[i] < centerValue){ left.push(arr[i]); }else{ right.push(arr[i]); } } return quickSort(left).contanct([centerValue], quickSort(right));//递归调用 } -
选择排序法
// 插入排序 var insertSort = function(arr) { var len = arr.length; var preIndex, current; for(var i = 1; i < len; i++){ preIndex = i - 1; current = arr[i]; while(preIndex >= 0 && arr[preIndex] > current){ arr[preIndex + 1] = arr[preIndex]; preIndex--; } arr[preIndex + 1] = current; } return arr; } -
冒泡排序法
// 冒泡排序 var bubbleSort = function(arr) { var len = arr.length; for(var i = 0; i < len; i++){ for(var j = 0; i < len - 1 - i; i++){ if(arr[j] > arr[j+1]) {//相邻元素两两对比 var temp = arr[j+1];//元素交换 arr[j+1] = arr[j]; arr[j] = temp; } } } return arr; }