並び替え(ソート)

処理概要を考える

共通処理になりそうな「並び替え」、「カンマ形式」から作っていきます。今回、並び替えが必要なのは、「購入」(価格が高い順に購入)、「収入リスト表示」(手数料の多い順に表示)の2か所です。これらが汎用的に利用できるように処理を考えます。また、並べ替えの手法は複数ありますが、今回はシンプルな「バブルソート」を用います。

バブルソート

小さい順に並び変える場合は、一番小さい数値が1番目になるように最後の数値と隣り合う数値比較し順番に相違があれば入れ替えます。次に最後から2番目と3番目の数値を比較し順番に相違があれば入れ替えます。これを1番目の数値まで比較していきます。2番目に小さい数値が2番目になるように最後の数値と隣り合う数値を比較し順番に相違があれば入れ替えます。これらを繰り返していくことで小さい順になります。


プログラム例です。

動作イメージ(ソートボタンを押してください)



ソート対象

購入時には価格が高い順に購入する必要があります。また、収入リストの表示は手数料の多い順に表示しなければいけません。いずれも価格が高い順(降順)の並び替えが必要です。

購入可能リストの形式が”物品名:価格”のため価格部分を抽出し並び替えを行います。並び変えの結果は、物品名と価格の配列をそれぞれ用意し格納するようにします。これは並び替え後に価格を用いて計算することを想定しているからです。また、収入リストの並び替えも同じ処理としたいため、収入リストを”物品名:手数料”の形式で作成することを前提とします。

プログラム&テスト結果

タイトルとURLをコピーしました