git cloneの例として古のソートデモを取り上げようとしたのだけど…..
古いデモプログラムなんですが、視覚的教育的に面白いので扱います。urlは、
https://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE6/CPP/RTL/Threads
です。Subversion経由で取ってこれます。Radstudio IDEから直接Subversionを取れるはずですが、12.1ではエラーが出てダメなので、別のクライアントを使います。

です。懐かしいですね。サイトは、
ここからrepo-browserをダウンロードして、最初のurlを開きます。

ここでOKをクリック。

左のペインで選択されている”Threads”を右クリック。

上から4番目の“Checkout”を選択。

Checkout directoryに問題がなければ、“OK”。Checkout directoryは、

こんなふうになっているはずなので、ためらうことなくThrdDemo.cbprojをダブルクリック。それから“F9”押すと。あら、

エラーでございます。曰く:
[bcc64 エラー] ThrdDemo.cpp(24): use of undeclared identifier ‘SetApplicationMainFormOnTaskBar’
いつのころからか、“SetApplicationMainFormOnTaskBar()”はObsolete(古く、不要または廃止)となっているので、単純にコメントアウトします。つまり、
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
//SetApplicationMainFormOnTaskBar(Application, true);
Application->CreateForm(__classid(TThreadSortForm), &ThreadSortForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
再度“F9”押すと、今度はBuildできました。

切れかかってますけど、”Start Sorting”をクリックすると、並列に三つのソートアルゴリズムが走ります。中間状態が

Bubble Sortは最遅なのでまだ終わっていません。タイミングが悪く、その他二つは終わっていますね。最後は、

となります。速度の順番だと、Quck Sort->Selection Sort->Bubble Sortということになって、定説通りですね。探すと、Web上には色々と視覚的にsort algorithmを比較したサイトがあるようです。面白い例は、
選択できるSorting Algorithmが増えて、

Bubble Selection Insertion Merge Quick Heapの6種類です。色々とsizeとかspeedとか変更すると面白いです。ま、普通はQucik Sort一択なんですけどね。関数化されていることが多いしね。

コメント