• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:構造体のリストをソートしたい。)

構造体リストの年齢順ソート方法

このQ&Aのポイント
  • 構造体リストを年齢順にソートする方法について詳しく教えてください。
  • 名簿の構造体リストをポインタをたどって辞書順にソートした後、年齢順にソートする方法について知りたいです。
  • 名前が辞書順にソートされた構造体リストを年齢順にソートする方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.4

ソートの方法は既に回答があるので、配列とリストについて。 データ構造として配列を選ぶか,リストを選ぶかは使い方とか目的等によります。 リストを選んだ方がいいケースは、例えばデータの追加、削除が頻繁に発生しデータ数が多い場合です。 具体的に言えば10万のデータがあって、先頭でデータの追加,削除が発生し、データが配列の場合は、99999のデータの移動が生じます。 リストの場合はリンクのつけかえだけですので、 データの移動は発生しません。 この質問の場合は現状ではどちらがいいかはわかりません。 ところで、この場合はクイックソートは向かない気がします。 というのはクイックソートでは比較の結果が同じ場合, 順番が保存されないからです。 例えば, ... 佐藤、10才 鈴木、10才 田中、10才 ... というデータがあった場合、年齢でソートして名前の順番が変わることがあります。

その他の回答 (4)

回答No.5

linked-listをそこそこのスピードでソートしたいなら、マージ・ソートがいいんじゃないかしら。

  • shige_70
  • ベストアンサー率17% (168/946)
回答No.3

なにもひとつの構造体でひとつのリスト構造しか作れないわけではないのですから、メンバにもうひとつポインタを追加して、年齢順リストを作ってあげる、という方法は如何でしょうか。

回答No.2

MEIBOのポインタ配列をつくり、そこに各要素のポインタを格納して、年齢順に並べ替える方法はどうでしょうか?元々のリスト構造を壊すことなく、年齢順に要素を取得することができるようになります。 MEIBO *tmpList["要素数"]; // 要素数が可変なら動的に割り当てる // tmpListに各要素のポインタを格納 // qsortでも何でも使ってソートする // tmpListを参考に出力する

回答No.1

malloc関数でメモリを一時作業領域としてソートする方法もあります。 また何もメモリ上【だけ】で作業をする必要は無いですよ。方法としてはファイルに書き出すとか。

関連するQ&A