> ## Content Index
> Fetch the complete content index at: https://www.geekjp.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 初心者がpython３とpygameでソートアルゴリズムを可視化してみる【バブルソート】【インサーションソート】
- URL: https://www.geekjp.com/2019-10-10-015348/
- Published: 2019-10-09T16:53:48.000Z
- Updated: 2026-08-01T14:23:00.000Z
- Description: Pythonでバブルソートと挿入ソートを実装し、Pygameで並べ替えの過程を可視化。隣接交換を繰り返す方法と、適切な位置へ要素を挿入する方法の違いを比較します。
- Author: 工学じじい
- Tags: コンピュータサイエンス, プログラミング, ゲームプログラミング, 技術, Python, Pygame, アルゴリズム, #Import 2026-07-19 20:21, #Import 2026-07-19 20:24

- 初心者がpython３とpygameでソートアルゴリズムを可視化してみる【バブルソート】【インサーションソート】
- バブルソート
- 結果
- インサーションソート
- 結果
- 所感

### バブルソート

前回に引き続いて調子に乗って別のソートアルゴリズムも試してみました。  
まぁありがちですが。。。

[Gistのソースコードを直接開く](https://gist.github.com/gomta777/2471b1cdafa29743cf74c963a00b893b?ref=geekjp.com)

バブルソートは隣り合う要素の値を比較して条件に応じた交換をしてゆき。  
最大値（または最小値）を逐次右端（または左端）に寄せていくことによりソートを実現します。  
大きい順（または小さい順に）順次値が泡のように浮いていくのでバブルソートと呼ばれます。  
詳しいことは、ググるとたくさん載ってるのでこの辺でｗ

効率については、悪いほうのアルゴリズムです。

とりあえず、pythonだと実装めっちゃ簡単でびっくりしました。  
（まぁ、速度はC/C++の方が早いんだろうけど）  
何がって、値の交換が

| a, b = b, a |
| ----------- |

で書けるってのがでかいですね。  
バブルソートやインサーションソートのようにインデックスベースで入れ替えが起こる処理では、楽できるね。

### 結果

前回同様、入れ替えの操作をリストに記録して、後で再生してます。

### インサーションソート

注目要素の値を、順次適切な位置に挿入することによって、整列を行うアルゴリズムです。  
処理が簡単なので、バブルソートのように隣接する要素と比べて値を交換していきますが、適切な挿入位置に値が収まると次のループに移行します。

[Gistのソースコードを直接開く](https://gist.github.com/gomta777/a1c82bdd2a52541a19602ee99a58a7e1?ref=geekjp.com)

### 結果

動画を見ると、バブルソートとインサーションソートの違いが判ると思います。

### 所感

交換していく系のソート２つを実装してみました。  
リストの操作や、繰り返しでミスったりいろいろありましたが、pythonの練習にはちょうど良かったかな？  
そして、pygameが使いづらい。。。  
enchant.jsで遊んでた時はとても楽だったのに笑  
くじけずもうちょい遊んでみようかなって思います。

へだば、また！