首页 > 编程语言 > 详细

数组的排序

时间:2020-06-16 15:41:10      阅读:32      评论:0      收藏:0      [点我收藏+]

冒泡排序

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!