思路
image.png
image.png
image.png

  1. let countSort = (arr) => {
  2. let hashTable = {},
  3. max = 0,
  4. result = [];
  5. for (let i = 0; i < arr.length; i++) {
  6. if (!(arr[i] in hashTable)) {
  7. hashTable[arr[i]] = 1;
  8. } else {
  9. hashTable[arr[i]] += 1;
  10. }
  11. if (arr[i] > max) {
  12. max = arr[i];
  13. }
  14. }
  15. for (let j = 0; j <= max; j++) {
  16. if (j in hashTable) {
  17. for (let i = 0; i < hashTable[j]; i++) {
  18. result.push(j);
  19. }
  20. }
  21. }
  22. return result;
  23. };

计数排序的特点

image.png

时间复杂度对比

image.png