基数排序
function radixSort(arr) {
const maxVal = Math.max(...arr);
const maxValLen = `${maxVal}`.length; // 最大的数的位数
// 补零
const _arr = arr.map((item) => `${item}`.padStart(maxValLen, '0'));
// 从低位开始对每一位进行比较后排序
for (let i = maxValLen - 1; i >=0; --i) {
_arr.sort((a, b) => parseInt(a[i], 10) - parseInt(b[i], 10));
}
// 赋值回 arr
_arr.forEach((item, index) => {
arr[index] = parseInt(item, 10);
});
return arr;
}最后更新于