基数排序 - JavaScript


基数排序 

基数排序是一种排序算法,它通过对具有相同有效位置和值的各个数字进行分组来对具有整数键的数据进行排序。

我们需要编写一个 JavaScript 函数,它将一个文本数组作为唯一的参数。该函数应使用基数排序算法按升序或降序对数组进行排序。

示例

以下代码 −

const arr = [45, 2, 56, 2, 5, 6, 34, 1, 56, 89, 33];
const radixSort = (arr = []) => {
   const base = 10;
   let divider = 1;
   let maxVal = Number.NEGATIVE_INFINITY;
   while (divider === 1 || divider <= maxVal) {
      const buckets = [...Array(10)].map(() => []);
      for (let val of arr) {
         buckets[Math.floor((val / divider) % base)].push(val);
         maxVal = val > maxVal ? val : maxVal;
      }
      arr = [].concat(...buckets);
      divider *= base;
   };
   return arr;
};
console.log(radixSort(arr));

输出

以下是在控制台上显示的输出 −

[
   1, 2, 2, 5, 6,
   33, 34, 45, 56, 56,
   89
]

最后更新: 11-12-2020

320 个浏览

开启你的 职业生涯

完成课程并取得认证

开始
广告