2011年3月26日土曜日

構造体データの並べ替え

構造体により定義されたデータを並べ替える例です。

本例題では、データの挿入時に日付毎 (char hday) に並べ替えて挿入されるようになっていますが、データ挿入後に再度、別の条件で並べ替えを行っています。

並び替えの部分 (sort_list 関数) では、関数ポインタ (int (* const comp[2])()) により並び替えの手法を変更しています。
また、sort_list 関数に指定する引数により、昇順/降順の指定を行うことができます.
例:
売り上げ金額毎に昇順に並べる:
sort_list(SORT_ASC,&start,uk_compare);
日付毎に降順に並べる:
sort_list(SORT_DESC,&start,date_compare);
→ それぞれの条件を計算するための比較関数を用意し、ASC(昇順)、DESC(降順) を指定しています。


sample.txt
004 東京 20050524 00001 東京商店 25000
003 横浜 20050321 00002 横浜商店 20000
002 千葉 20050103 00001 東京商店 30000
004 東京 20050603 00003 関東商事 15000
004 東京 20050603 00003 関東商事 18000
004 東京 20050603 00003 関東商事 17000
004 東京 20050603 00003 関東商事 16000
004 東京 20050603 00003 関東商事 11000
004 東京 20050603 00003 関東商事 12000
実行結果

0 件のコメント:

コメントを投稿