- Docker がインストールされていること
- Docker Compose が使用できること
- Docker を使わなくても動作はしますが、サポート対象外です
各アルゴリズムは、clibsディレクトリの中でディレクトリ分けされていて、それぞれ C 言語の共有ライブラリとして実装されています。各アルゴリズムのディレクトリには、以下のファイルが含まれています。
includeディレクトリ: ヘッダファイル。特に、lib.hは外部へ関数を公開するためのヘッダファイルになっています。srcディレクトリ: ソースファイル。特に、lib.cは外部へ関数を公開するためのソースファイルになっています。testディレクトリ: テストファイル。特に、test.cは各アルゴリズムのテストを行うためのファイルになっており、共有ライブラリとは別にコンパイルされるようになっています。
test.cを実行するには、各アルゴリズムのディレクトリに移動して、以下のコマンドを実行してください。例えば、バブルソートの場合は、bubble_sort ディレクトリに移動してください。
cd ./bubble_sort
docker compose upC のソースコードを変更しても、--build オプションをつける必要はありません。docker compose upのみで、新しいバイナリがビルドされます。
Python によって、C 言語の共有ライブラリを用いて、numpyの配列のソートを行うことができます。
sort_algorithms ディレクトリに移動して、以下のコマンドを実行してください。
docker compose upなお、C や Python のソースコードを変更しても、--buildオプションをつける必要はありません。docker compose up のみで、新しいバイナリがビルドされます。C や Python のソースコードを変更した場合は、docker compose upを再度実行するか、現在実行中のコンテナ内でcd /app && ./setup.shを実行してください。
docker compose upを起動してしばらく待つと、Jupyter notebookが起動しますので、ブラウザでhttp://127.0.0.1:8888にアクセスしてください。
VS Code 上でipynbファイルを開いてコードを実行したい場合は、Jupyter Notebookが起動したあとで、以下の操作を行なってください。
以上で、VS Code 上でipynbファイルを開いてコードを実行することができます。いつも通り、三角ボタンからセルを実行しましょう。
Python によるラッパー関数は、mypysortというライブラリにまとめてあります。すでにpip install済みです。mypysortライブラリにはさらに各ソートごとにモジュールが分かれています。例えば、バブルソートはmypysort.bubble_sortモジュールにまとめられています。
各モジュールには、sort関数を必ず含みます。それ以外に便利な関数があれば、それも含まれています。






