sort('javascript') // aacijprstvsort('dbca') // abcd
提示: 见tips.md
答案:
function counting_sort(str){const A = [...str].map(c => c.toLowerCase().charCodeAt(0))const max = Math.max(...A)// 累计数组const B = Array(max + 1).fill(0)// 结果数组const C = Array(A.length)// 累计位递增A.forEach((_, i) => B[A[i]]++)// 累计求和for(let i = 1; i < B.length; i++) {B[i] = B[i-1] + B[i]}// 结果取出for(let i = 0; i < A.length; i++) {const p = B[A[i]] - 1 // 回写位置B[A[i]] -- // 新回写位置C[p] = str[i] // 回写结果}return C.join('')}
