该算法如何抵抗计数排序?

问题描述

我正在经历一些代码挑战,并遇到了一个挑战:https://www.hackerrank.com/challenges/countingsort4/problem

基本上,它必须进行计数排序,但要注意一点。我完全不知道计数排序,因此编写了以下算法,它通过了所有测试用例,但我希望有人能帮助我理解我的算法和计数排序算法,以及我的情况更糟:

function countSort(arr) {
    const toBeReplaced=(arr.length/2);
    let mapOfString={};
    let distinctIntegers=[];
    for(let i=0;i<arr.length;i++){
        let insertDash=false;
        if(i<toBeReplaced) {
            insertDash=true
        }
        let x=arr[i][0];
        let s=arr[i][1];

        if(!mapOfString[x]){
            mapOfString[x]=[];
            insertDash?mapOfString[x].push('-'):mapOfString[x].push(s);
            distinctIntegers.push(x)
        } else{
           insertDash?mapOfString[x].push('-'):mapOfString[x].push(s);
        }  
    }
    const sorteddistinctIntegers=distinctIntegers.sort((a,b)=>{
        if(parseInt(a)>parseInt(b)){return 1}
        else if(parseInt(a)<parseInt(b)){return -1}
        else {return 0}
    });
    let finalString='';
    sorteddistinctIntegers.forEach(elem=>{
        const charLen=mapOfString[elem].length;
        for(let i=0;i<charLen;i++){
            finalString=finalString+mapOfString[elem][i]+' ';
        }
    })
    console.log((finalString.substring(0,finalString.length-1)))
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)