前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排序还可以这样做

排序还可以这样做

作者头像
用户1183026
发布2018-01-19 10:02:24
5480
发布2018-01-19 10:02:24
举报
文章被收录于专栏:布尔布尔布尔

比如给一个整数序列[5,5,3,3,9,9,4,4,0,0,6,6,8,8,2,2,7,7,1,1],只需要把序列中的每个元素在中间数组标识一下,如5可以标识为arrTemp[5]=1,如果序列中还有这个元素可以标识为arrTemp[5]=2,如此arrTemp=[2,2,2,2,2,2,2,2,2,2],再把arrTemp翻译为结果[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9],这样做时间复杂度为2*len,具体代码如下(未做输入参数检查):

var SF = {
    Sort : function(arr){
        var arrTemp = []
        var index = -1
        for(var i=0; i<arr.length; i++){
            var item = arr[i]
            //if(arrTemp[item] == 1){
            if(arrTemp[item] >= 1){
                arrTemp[item]++
            }else{
                arrTemp[item] = 1
            }
        }
        
        var arrR = []
        for(var i=0; i<arrTemp.length; i++){
            var item = arrTemp[i]
            if(item){
                for(var j=0; j<item; j++){
                    arrR.push(i)
                }
            }
        }
        return arrR
    }
}
var arr = [5,5,3,3,9,9,4,4,0,0,6,6,8,8,2,2,7,7,1,1]
alert(SF.Sort(arr))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2007-04-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档