[Visual C++ 2017] ソートを可視化してみた #1
はじめに
ソート処理をなんとなく使っていたため、視覚的に取り扱ってみたかった。
バブルソートやクイックソートは知っていたが、他のソートアルゴリズムには疎く、自己学習にもなり良い機会だと思った。
ソートアルゴリズムは、参考となるページが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
Author And Source
この問題について([Visual C++ 2017] ソートを可視化してみた #1), 我々は、より多くの情報をここで見つけました https://qiita.com/name_yy/items/c8cfb2ee68ca5be6be69著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .