読者です 読者をやめる 読者になる 読者になる

amidana

プログラマ目線の個人ブログです

【Go】Goでクイックソートを書いた

Goでクイックソートを書いてみました。
クイックソートとは、複数あるソートアルゴリズムの中でも最速といわれるものとなります。

実行例:

go run quicksort.go 8 5 9 0 1 4 7 2 3 6 

実行結果:

[0 1 2 3 4 5 6 7 8 9]

main関数では、flagパッケージを使いコマンドライン引数から値を取得します。
さらに、strconv.Atoiで文字列を数値に変換した上で、q_sort関数にソート対象のSliceを渡します。


肝となるq_sort(クイックソート関数)ですが、解説は他のサイトで詳しくされているのでそちらをご参照のこと。

と思っていくつか見ていたら、基準値とする場所の違いがあるようですね。
上記ソースは先頭パターンです。

真ん中パターン:クイックソート - Wikipedia
先頭パターン:クイックソート
最後パターン:ソートと探索(クイックソート)



こちらの書籍を参考に書きました。
とても丁寧でアルゴリズム初学者でもじっくり理解できます。

アルゴリズムを、はじめよう

アルゴリズムを、はじめよう

SIer企業に入社し言語の知識を学んで仕事をしてきましたが、改めてアルゴリズムを学ぶともっと合理的な書き方ができそうだなぁと、プログラミングすることが楽しみになってきそうです。