[アルゴリズム] クイックソートの実装(Python編)

auto-racing-558089_1280
LINEで送る
Share on GREE
Share on LinkedIn

Pythonコードにだいぶ慣れてきました。
Pythonistaの人たちが、「Pythonが使いやすいのはコードがシンプルになるから」とよく言っているのを聞くのだが、インクリメントがなかったり、for文が特殊だったりして、個人的には少し足りていない言語の印象がある。
悪く言うつもりはないが、クセのある言語には違いなさそうだ。

ソース

実行

解説

インクリメントが使えない

プログラムの醍醐味であるインクリメントが無いなんてコーダーとしては何だか物足りないんじゃないか?と思うが、下記のように対応することでいいらしい。

num++

num += 1

三項演算子の書き方

JSやPHPの三項演算子は

$hoge = (fuga < 0) ? 0 : fuga;

というところを、Pythonでは、以下のように記述する

# 変数 = (if==trueの返り値) if (条件) else (if==falseの返り値)
hoge = 0 if fuga < 0 else fuga

返り値が最初に来るところが、悩ましいですね。

nullを使わずに-1を使用

Pythonだからというわけではないが、JS以外は変数の型には忠実に従ったほうがいいので、quickSort関数の第2,3引数にnullを使わずに、マイナス値を使いましたが、これで、配列内の数値はプラスの数値しか使えなくなってしまいました。
null使ったほうが良かったのかな???

参考リンク

クイックソート

解説
Javascript
PHP
Python

アルゴリズム過去記事

http://wordpress.ideacompo.com/?cat=562&tag=Algorithm

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です