美文网首页
计数排序

计数排序

作者: Adder | 来源:发表于2020-12-26 22:37 被阅读0次

计数排序

使用哈希表的原理,输出从顺序的结果列表

var testArr = [12, 72, 34, 95, 43, 5, 24, 67, 6, 8, 79, 55, 33, 24, 3];
let obj = {};
let max = testArr[0];
for (let i in testArr) {
  obj[testArr[i]] = testArr[i] in obj ? obj[testArr[i]] + 1 : 1;
  if (testArr[i] > max) {
    max = testArr[i];
  }
}
console.log('哈希表\n', obj)
const sortArr = [];
for (let i = 0; i <= max; i++) {
  if (testArr.find(it => it === i)) {
    if (obj[i] > 1) {
      // 重复的数字
      for (let j = 1; j <= obj[i]; j++) {
        sortArr.push(i)
      }
    } else {
      sortArr.push(i)
    }
  }
}
console.log(sortArr);

相关文章

网友评论

      本文标题:计数排序

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