2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DXライブラリでソートアルゴリズムの可視化をした話

Last updated at Posted at 2019-02-20

5i5.gif

#はじめに
こんにちは。前回 C#.NET Frameworkでソートアルゴリズムの可視化をした話をしました。もっと早く描画させたいのと、もっと多くの要素を扱えるようにするためにDXライブラリでソートアルゴリズムの可視化をしようと思います。
なんかもうソートアルゴリズムの勉強の範疇を超え、ソート中毒になってる気がしますがまだまだ飽きないです。

動作例はクイックソートです。
申し訳ないんですがGIFサイズの問題なのかこれ以上動作サンプルを載せることができませんでしたのでご了承ください。

#今回実装したソートアルゴリズム
 今回学習目的で実装したアルゴリズムは以下です。各アルゴリズムの詳しい説明はggってください...
・バブルソート
・クイックソート
・マージソート(In-place)
・バイトニックソート
・ヒープソート

#詳細
DXライブラリのDrawBoxとかDrawCircleで描いています。ソートごとに更新フレーム間は違います(やっぱりIN-placeなソートではクイックソートが一番早い)。はじめはDrawBoxの四角形でやってたんですが色付きでもやりたいなと。それなら円でしょ。みたいな。
ちなみにC++のstd::sortはIntroソートってやつを使ってるらしいです。Introソートは、クイックソートとヒープソートを組み合わせたものらしいです(再帰がソートされた要素数の対数を超えるとヒープソートになるらしい)。

##データ
データはこんな感じで構造体で管理しています。初期化時に値と色を設定してArr構造体ごとスワップして画面を更新することで、ソートできる色の円を表現することができます。

main.h
typedef struct {
	int v; //値
	int r; //Red
	int g; //Green
	int b; //Blue
}Arr;

#さいごに
ソートたのちいいいいいいいいいいいいい

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?