動的な構造体について – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] 動的な構造体について

固定ページ 2 / 2

NGA
 NGA
(@NGA)
ゲスト
結合: 23年前
投稿: 98
 

では、作るということで解決ですか?


返信引用
クリリン
 クリリン
(@クリリン)
ゲスト
結合: 23年前
投稿: 175
Topic starter  

ただ、
typedef struct
{
CString a ;
CString b ;
CString c ;
}aaa_t ;

CArray<aaa_t,aaa_t> m_aaaArray ;
の使い方がよく判らなくて・・・
現在、試行錯誤中です。


返信引用
NGA
 NGA
(@NGA)
ゲスト
結合: 23年前
投稿: 98
 

では、頑張ってくださいということで。


返信引用
クリリン
 クリリン
(@クリリン)
ゲスト
結合: 23年前
投稿: 175
Topic starter  

とりあえず、解決としておきます。
ちなみに、「STL」を使うと、データをDBみたいに使えるのですね・・・
どちらも、やってみます。
みなさん、ありがとうございました。


返信引用
クラフトマン
 クラフトマン
(@クラフトマン)
ゲスト
結合: 23年前
投稿: 72
 

解決しているのに書き込むのもなんですが、自前の双方向リストで、自前の
クイックソートを書きたい方のために補足しておきます。
双方向リストで、クイックソートを実装するのは、割と簡単だと思います。
リストは、データの移動が、ポインタ操作だけで出来るので、その点では、
クイックソートと相性がいいともいえます。

簡単に手順を書きます。
1.ソート範囲先頭ノードのデータを分割値とする。
2.範囲末尾になるまで、1つずつノードのデータを分割値と比較し、小さけ
れば、そのノードを分割地ノードの前に移動する。
ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが大きいデータとなっていることになります。
これを再帰的に、前半、後半それぞれの範囲で行えば、ソートできます。

注意事項は、配列のクイックソートと同様です。
より実用性を高めるには、ソート済みデータに対するソートの対応(分割値
の決め方等)とか、ソート範囲が小さくなった場合のアルゴリズムの切り替
えとか、再帰のネスト数を減らす工夫とかを考える必要があるでしょう。

#このところ、忙しすぎて、書き込みも久しぶり。今夜も徹夜か? :<


返信引用
クラフトマン
 クラフトマン
(@クラフトマン)
ゲスト
結合: 23年前
投稿: 72
 

一部訂正。


ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが大きいデータとなっていることになります。


ここまでの処理で、分割値ノードを挟んで、前にあるのが小さいデータ、
後にあるのが、大きいか等しいデータとなっていることになります。

また、このロジックに従えば、クイックソートなのに、安定なソート
(同じ値のデータの順序が保たれるソート)が実現できます。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました