如何解决该算法如何抵抗计数排序?
我正在经历一些代码挑战,并遇到了一个挑战: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 举报,一经查实,本站将立刻删除。