#はじめに
ソート処理をなんとなく使っていたため、視覚的に取り扱ってみたかった。
バブルソートやクイックソートは知っていたが、他のソートアルゴリズムには疎く、自己学習にもなり良い機会だと思った。
ソートアルゴリズムは、参考となるページがWeb上には多くあるため、この投稿では割愛。
#Winsowの作成
Windowsデスクトップアプリケーションで新規Windowが作成できる。
#描画
hPen
MoveToEx()
LineTo()
により枠組みを描画。
hButtonWnd[]
でボタンを設置し、初期化やソート処理の開始などをコントロールさせる。
とても素朴なインターフェースですが、とりあえずはこれで。
#可視化
計算の度に画面の更新が必要なため、ソートアルゴリズム中に、InvalidateRect()
UpdateWindow()
を入れた。
if (input_num[j - 1] > input_num[j]) {
temp = input_num[j];
input_num[j] = input_num[j - 1];
input_num[j - 1] = temp;
InvalidateRect(hWd, NULL, TRUE);
UpdateWindow(hWd);
}
データ個数を100個用意し、乱数を生成。バブルソートを試してみる。
目的を達成できたようです。
他のソートも充実させていきたいと思います。
#リンク
以下リンク先では多くのソートを見ることができ、その影響を受けました。
15 Sorting Algorithms in 6 Minutes
https://www.youtube.com/watch?v=kPRA0W1kECg