数组的排序
冒泡排序
//每轮将数组中最大的值往后排
function bubbleSort(arr){ for(var i = 0; i < arr.length -1; i++){ for(var j = 0; j < arr.length -1-i;j++){ if(arr[j] > arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1] arr[j+1] = temp } } } }
选择排序
//每轮将数组中最小的值往前排
function selectSort(arr){ for(var i = 0; i < arr.length - 1; i ++ ){ //定义最小索引基值 var minIndex = i; for(var j = i; j < arr.length; j++ ){ if(arr[j] < arr[minIndex]){ minIndex = j } } //交换位置 var temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp } }
插入排序
function insertionSort(arr){ let len = arr.length;
for(let i = 0; i < len -1; i++){
let insert = arr[i+1];
let index = i + 1;
for(let j = 0; j >=0;j--){
if(arr[j]> insert){
arr[j+1] = arr[j]
index = j
}
}
arr[index] = insert
}
return arr }
快速排序
functiion quickSort(arr){ function _quickSort(arr,start,end){ if(start > end || start > arr.length) return; var key = arr[end]; var low = start, high = end; while(low < high){ //当开始的索引值小于基准值继续往右查找,当大于基准值的时候把这位数组索引值赋给最后一位停止查找 while(low < high && arr[low] < key) low ++ arr[high] = arr[low] //当最后的索引值大于基准值继续往左查找,当小于基准值的时候把这位数组索引值赋给开头这位停止查找 while(low < high && arr[high] > key) high -- arr[low] = arr[high] } arr[low] = key; _quickSort(arr,0,low -1); _quickSort(arr,low +1 , end) } _quickSort(arr,0,arr.length - 1) }

浙公网安备 33010602011771号