[アルゴリズム] バケットソート(Python編)

lost-places-1685559_1280
LINEで送る
Share on GREE
Share on LinkedIn

現存のWEBプログラム言語で、一番直感的にコーディングできるのは、Javascriptだと実感しています。
慣れもありますが、変数の型の扱いの緩さや、それをコントロールする術が、直感的に行えるのですが、
今回扱ったPythonコードでは、多次元配列や多次元辞書においてのkeyの扱いが、厳密に行わないと
いけないことから、言語の注意ポイントを改めて認識できた。
大きなプログラムを構築する時は、厳密に管理出来たほうが便利なのだが、スピード速くコーディングするような
スポーツプログラムの場合は、少しもどかしく感じてしまう。
感覚は人それぞれだが、こうした事を慣れていくことが、コーダーのスキルアップなのだという事ですね。

ソース

実行

解説

配列(リスト)と辞書(ディクショナリ)の存在確認

pythonはkeyの存在しない配列や辞書にアクセスしようとしたら、errorで止まります。
なので、key存在確認は確実に行いましょう。

注意点としては、TrueとFalseは、大文字をちゃんと区別して記入しないと「true / false」のように書くとErrorになります。
もう一つ注意点があり、if文内でこの記述をするときは、ちゃんと(…)で囲わないと、Errorになります。

配列と辞書の定義

今回bucketを配列ではなくて辞書で定義しています。
理由としては、Pythonでの配列は、存在しないkeyが存在すると、そのkey値を”0″で埋めてしまうため、今回の処理がうまく動作しなかったためです。
という事で、改めて定義は以下のように行いましょう。

関連リンク

kiwipedia

マージソート記事

解説
Javascript
PHP
Python

アルゴリズム過去記事

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

Leave a Reply

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


*