ソート数


カウントソート

  • 値は比較しないので、O(k+n)時間以内に実行する.
  • の数字を操作する限り、特定の範囲を指定する必要があります.
  • 交換
  • アイテムの代わりにソートされ、ソート内の各アイテムの出現回数が計算されます.
  • 個のアイテムの出現回数を数え、その出現回数を使用して新しいシナリオを作成できます.
  • 係数ソートは、アイテムを交換するのではなく、資料をソートします.

  • コード実装

    const countSort = array => {
      let hash = {}, countArr = [];
      
      for(let i=0; i<array.length; i++) {
        if(!hash[array[i]]) hash[array[i]] = 1;
        else hash[array[i]]++;
      }
      
      for(let key in hash) {
        for(let i=0; i<hash[key]; i++) {
          countArr.push(parseInt(key));
        }
      }
      return countArr;
    }
    
    countSort([6,1,23,2,3,2,1,2,2,3,3,1,123,123,4,2,3]);