カウントソートの実装

カウントソートとは

ソートアルゴリズムの中でも比較を使わずにソートする変わった?アルゴリズム。

比較せずに要素をカウントすることでソートができる。

カウントしてソートすることができるというのは不思議!と思ったので調べてみた。

前提

累積和について知っておく必要がある。

cf. qiita.com - 累積和とは(超初心者用)

実装

ソースコードは以下。

count_sort

処理の流れとしては、

  1. 配列の要素はインデックスとして配列内の要素の出現回数をカウント
  2. 累積和を計算
  3. 配列末尾から走査してソート結果を得る

直感的ではなく何というかすごく数学的な感じがする。

参考