1.冒泡排序 两两比较
function bubbleSort(arr){
• //确定循环的次数
• for(var i = 0; i < arr.length-1; i++){
• //每一轮的数值比较
• for(var j = 0;j < arr.length - i -1; j++){
• //谁大谁往后排
• if(arr[j] > arr[j+1]) {
• var temp = arr[j];
• arr[j] = arr[j+1];
• arr[j+1] = temp;
• }
• }
• }
• return arr;
• }
2.选择排序
function chooseSort(arr){
• //确定几轮
• for(var i=0;i<arr.length-1;i++){
• //第一轮都和第一个比较
• for(var j = i+1;j<arr.length; j++){
• //谁小放前面
• if(arr[i] > arr[j]){
• var temp = arr[i];
• arr[i] = arr[j];
• arr[j] = temp;
• }
• }
• }
• return arr;
• }
3.快速排序
function quickSort(arr){
• //递归结束条件
• if(arr.length<=1){
• return arr;
• }
• //取中间的值以及中见下标
• var
• midIndex = parseInt(arr.length / 2),
• midVaule = arr[indIndex],
• leftArr = [], //创建左右数组
• rightArr = [];
• //遍历数组,没一个值和中间的值作比较。大的放右侧数组,小的放左侧数组
• for(var i=0;i<arr.length;i++){
• //如果是中间小标的,跳出本次循环(不用中间值和自身比较)
• if(i == midIndex){
• continue;
• }
• if(arr[i]<= midValue){
• leftArr.push(arr[i]);
• }else{
• rightArr.push(arr[i]);
• }
• }
• //利用递归处理左右数组
• var res = quickSort(leftArr).concat(midValue).concat(quickSort(rightArr));
• return res;
• }