では、作るということで解決ですか?
ただ、
typedef struct
{
CString a ;
CString b ;
CString c ;
}aaa_t ;
CArray<aaa_t,aaa_t> m_aaaArray ;
の使い方がよく判らなくて・・・
現在、試行錯誤中です。
では、頑張ってくださいということで。
とりあえず、解決としておきます。
ちなみに、「STL」を使うと、データをDBみたいに使えるのですね・・・
どちらも、やってみます。
みなさん、ありがとうございました。
解決しているのに書き込むのもなんですが、自前の双方向リストで、自前の
クイックソートを書きたい方のために補足しておきます。
双方向リストで、クイックソートを実装するのは、割と簡単だと思います。
リストは、データの移動が、ポインタ操作だけで出来るので、その点では、
クイックソートと相性がいいともいえます。
簡単に手順を書きます。
1.ソート範囲先頭ノードのデータを分割値とする。
2.範囲末尾になるまで、1つずつノードのデータを分割値と比較し、小さけ
れば、そのノードを分割地ノードの前に移動する。
ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが大きいデータとなっていることになります。
これを再帰的に、前半、後半それぞれの範囲で行えば、ソートできます。
注意事項は、配列のクイックソートと同様です。
より実用性を高めるには、ソート済みデータに対するソートの対応(分割値
の決め方等)とか、ソート範囲が小さくなった場合のアルゴリズムの切り替
えとか、再帰のネスト数を減らす工夫とかを考える必要があるでしょう。
#このところ、忙しすぎて、書き込みも久しぶり。今夜も徹夜か? :<
一部訂正。
誤
ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが大きいデータとなっていることになります。
正
ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが、大きいか等しいデータとなっていることになります。
また、このロジックに従えば、クイックソートなのに、安定なソート
(同じ値のデータの順序が保たれるソート)が実現できます。