排序算法8-计数排序

2021-04-19  本文已影响0人  小杰66

计数排序

算法步骤:
1.找出待排序的数组中最大值
2.统计数组中每个值为i的元素出现的次数,存入数组的第i项
3.对所有的计数累加
4.填充目标数组

function countSort(arr) {
  //最大值的获取直接通过api获取
  let maxValue = Math.max(...arr);
  let len2 = maxValue + 1;
  let arr2 = new Array(len2);
  let index = 0;
  let len = arr.length;

  for (let i = 0; i < len; i++) arr2[arr[i]] = (arr2[arr[i]] || 0) + 1;
  for (let j = 0; j < len2; j++) {
    while (arr2[j] > 0) {
      arr[index++] = j;
      arr2[j]--;
    }
  }
}
上一篇下一篇

猜你喜欢

热点阅读