首页 > 编程语言 > 详细

手写数组排序

时间:2020-12-21 22:34:00      阅读:29      评论:0      收藏:0      [点我收藏+]
        //冒泡排序
        function bubble(arr){
            var i,j
            var len = arr.length
            for(i=0; i<len; i++){
                for(j=0; j<len-i-1; j++){
                    if(arr[j]>arr[j+1]){
                        let temp = arr[j]
                        arr[j] = arr[j+1]
                        arr[j+1] = temp
                    }
                }
            }
            return arr
        }
        //选择排序
        function choose(arr){
            var i,j
            var len = arr.length
            for(i=0; i<len; i++){
                for(j=i+1; j<len; j++){
                    if(arr[i]>arr[j]){
                        let temp = arr[i]
                        arr[i] = arr[j]
                        arr[j] = temp
                    }
                }
            }
            return arr
        }
        //插入排序
        function insertion(arr){
            var i,current,prevIdx
            var len = arr.length
            for(i=1; i<len; i++){
                current = arr[i]
                prevIdx = i-1
                while(prevIdx>=0 && current<arr[prevIdx]){
                    arr[prevIdx+1] = arr[prevIdx]
                    prevIdx--
                }
                arr[prevIdx+1] = current
            }
            return arr
        }
        //快速排序
        function quick(arr){
            var len = arr.length
            var key = arr[Math.floor(len/2)]
            var left = [], right = [], mid = [], current
            if(len < 2){
                return arr
            }
            for(i=0; i<len; i++){
                current = arr[i]
                if(current < key){
                    left.push(current)
                }else if(current > key){
                    right.push(current)
                }else{
                    mid.push(current)
                }
            }
            return [].concat(quick(left),mid,quick(right))
        }

 

手写数组排序

原文:https://www.cnblogs.com/duet/p/14169950.html

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