Python3系で学ぶ基本アルゴリズム「バブルソート」

OKバブリー

どうも、日本一ギャグセンスがあるエンジニア、しゅういちです。

IT業界にきて早くも一年が過ぎました。で、先日上司にお題を出されたんですよ。

「ぶっちゃけバブルソート、自分で書けるか?」ってね。

はい、書けますとも!!と即答したはいいのですが。

 
 
 
 
 
 
 
 
 
 
 
 

30分経っても全然解けない

ガーン・・・かけると思っていたのに、力のなさを思い知りましたよwというわけで、今日は基本的なアルゴリズム「バブルソート」をPython3系を使いながら、解説します。解説すると身に付くっていうしね。うんうん。

バブルソートが書けるようになるために必要な要素は?

プログラミングでバブルソートが書けるようになるには、以下の要素が必要になります。

  • 配列について理解しているか。
  • for文について理解しているか
  • if文ついて理解しているか
  •  
    最低限これだけは抑えておきましょう。

    では、さっそく以下はバブルソートの例です。

    そして結果がこちら

    画像をご覧いただくとわかるように、一番右端の数とその隣の数が条件に合致した時に、数が入れ替わっています。
    処理が進むごとに数字が右側にずれていっているのがわかります。う、美しい。。。!

    具体的にポイントとなる一行を見ていきます

    ポイントになるのは2つ目のfor文とその中のif文です。

    for j in range(len(targetArray)-1, i, -1):

    と書いています。この一文を理解するにはrange関数を理解する必要があります。

    range関数リファレンス

    上記の一文の場合、targetArrayの配列の数は10でカウントされますが、配列は0から数えるので、最後の要素でエラーが出力されてしまいます。こんな風に
    10個目の要素はありませんよ!って怒られました。上記のコードでlen(targetArray)-1の-1を消して実行した結果です。

    ということはこのコードを日本語で説明すると、

    「targetArrayの要素[9]から-1していく間、iの数になるまで繰り返し処理を行います。」

    って書いてあるんです。これわかるかなぁ・・・range関数がわかれば、この一文の意味が分かる。

    まとめ

    ソートアルゴリズムはプログラミングする上で基本中の基本。だから、是非、これをきっかけに基本的なソートアルゴリズムが書けるようになると、エンジニア未経験の人は、より良いプログラムを書く要素の一つになりますので、チャレンジしてみてくだされ。

    コメントを残す




    CAPTCHA


    関連記事

    なぜ日本一ギャグセンスがある私が、ブログを書くことにしたか?
    モテない歴31年の私が婚活パーティで80%のカップル成立率を誇った具体的な手法
    noimage
    プログラミングはIT業界だけのものではない!
    あなたはこのすごさに気づいていますか?プログラミングを学ぶと世界が変わることを
    エンジニアこそ、発信力をつけたほうがいいと思うんですよ、ぼくぁ
    新人エンジニアに物申す!これだけは守ってほしい3つの心構え
    元借金300万円だった私が伝えるお金がない人の特徴5つ
    ほとんどの人が記憶する方法を間違っている?正しい方法で記憶すれば、忘れにくくなる!
    ITエンジニア未経験の人は技術ブログを作って発信すると、スキルも上がり、稼ぎも加速する。
    ビジネスに10個挑戦!(まじか)お金を稼ごうとした時の私の失敗例と改善策
    デザインはセンスがないとできない?実はデザイン程ロジカルな考え方が必要です。
    転職5回、営業を6年やった私がなぜ未経験からITエンジニアになったか?
    新年明けてから一か月間、寝る前に「ありがとう」という言葉を500回唱えてみたら、色々面白いことが起こった話
    本当にわかってる?ビジネスで結果を出せる人、出せない人の3つの違い

    Menu

    HOME

    TOP