美文网首页
三大经典排序算法

三大经典排序算法

作者: 明明你也一样 | 来源:发表于2019-12-09 11:48 被阅读0次

    冒泡排序

    function BubbleSort(arr){
        for(let i = 0; i < arr.length-1; i++){
            for (let j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    let temp = null
                    temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp    
                }
            }
        }
        return arr
    }
    

    插入排序

    function InsertSort(arr) {
        let newArr = []
        newArr.push(arr[0])
        for (let i = 1; i < arr.length; i++) {
            for(let j = newArr.length - 1; j >= 0; j--){
                if (arr[i] > newArr[j]) {
                    newArr.splice(j + 1,0,arr[i])
                    break
                }
                if (j === 0) {
                    newArr.unshift(arr[i])
                }
            }
            
        }
        return newArr
    }
    

    快速排序

    function QuickSort(arr) {
        if (arr.length <= 1) {
            return arr
        }
        var pointIndex = Math.floor(arr.length / 2)
        var pointValue = arr.splice(pointIndex, 1)[0]
        var leftArr = []
        var rightArr = []
        for(var i = 0; i <arr.length; i++){
            var cur = arr[i]
            cur > pointValue ? rightArr.push(cur) : leftArr.push(cur);
        }
        return QuickSort(leftArr).concat(pointValue, QuickSort(rightArr))
    }
    

    相关文章

      网友评论

          本文标题:三大经典排序算法

          本文链接:https://www.haomeiwen.com/subject/kujbgctx.html