>【独学するコンピュータサイエンス-アルゴリズム編-】パーティションソート2019/02/03こんにちは今回はパーティションソートについて書きます任意の数列の最後の要素よりも大きな値と小さな値に分類するアルゴリズムのことをパーティションソートといいますたとえば数列{7,6,9,8,4,1,5,3}があったとすると、この場合は最後の要素は3です。3よりも大きな値と小さな値に分類しますこの場合、上図のように{1,3,9,8,4,7,5,6}と3を分水嶺としてそれよりもおおきな値か小さな値かでデータを分けることができます。特定のIDよりも大きなものと小さなものを検索する場合に使えそうですよね。上記はコードにすると、こんなかんじでかけます。i+1;//パーティションの値を返す}くわしいコードの解説はまたあとでやります。ソートアルゴリズムはたくさんあるので、すこしづつ理解して身に着けていくしかありません。コードを暗記してもどうせわすれるし、あまり意味がないので、そのアルゴリズムがどんなふうに動いていくのかを理解することが大切です。アルゴリズムが動くのはコンピュータのなかですが、アルゴリズムをつくるのは人間であって、それを考えるには「紙とペン」が重要だったりします。forループが絡んで、iなどのカウントパラメータが増えると、コードはとてもシンプルにみえるのですが、処理動作を頭のなかで追いかけるにはパラメータの数の2乗くらい認識するのがむずかしくなる印象をもっておくとよいかもしれません。冒頭のようにコードを書くまでに紙とペンでプログラムの挙動を追いかけてみると、実装はかなり楽になります。アルゴリズムの理解は実装力にかかわるのでエンジニアの基礎体力みたいなものですからね。ファイルに限らずエラー処理は非常に大切です。