冒泡排序
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){ for(var i = 1; i < arr.length ; i++){ if(arr[i] < arr[i- 1]){ //先记录最小值 var temp = arr[i]; //循环查找temp 前面的数据 for(var j = i; j >=0; j--){ if(j >0 && arr[j -1] > temp){ arr[j] = arr[j - 1] }else{ arr[j] = temp; break; } } } } }
快速排序
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) }
原文:https://www.cnblogs.com/wangyisu/p/13141137.html