平成27年春期午後問3

れいさん  
(No.1)
https://www.ap-siken.com/kakomon/27_haru/pm03.html

図2のソートの仕方が良くわかりません。辞書式順にソートをしたらすべてaaappyになる気がするのですがどういうメカニズムですか?
2023.09.26 15:30
jjon-comさん 
AP ゴールドマイスター
(No.2)
> このブロックを行単位で辞書式順にソートし(⑥)
と問題文に書いてあります。
文字列長=6 の6つの単語を辞書式順に整列したら
"apapay"
"apayap"
"ayapap"
"papaya"
"payapa"
"yapapa"
となります。
2023.09.26 16:07
れいさん  
(No.3)
jjon-comさん
回答ありがとうございます。
辞書式順の仕組みがよくわからないままです。辞書順ならすべてaaappyになってしまう気がするのですがそうならないのはなぜですか?
2023.09.27 11:14
jjon-comさん 
AP ゴールドマイスター
(No.4)
文字単位ではなく
> このブロックを *行単位で* 辞書式順にソートし(⑥)
と問題文に書いてあります。
2023.09.27 12:51
電タックさん 
(No.5)
この投稿は投稿者により削除されました。(2023.09.27 14:14)
2023.09.27 14:14
電タックさん 
(No.6)
6のソートは横方向ではなく(各文字列は変えず)、縦方向の位置を並び替えてます。

並び替えの判断の時に、先頭文字から辞書順で1文字ずつ当てて行き前か後かを判断しています。

以下の4つであれば
200円
130円
205円
120円

1.先頭(百の位)で一番若い文字を選ぶ。
">最初は120円と130円の1"
2.選ばれたものが1個に決まっていなければ、その中で次の(十の位)で一番若い文字を選ぶ。
">最初は120円の2"
3.選ばれたものが1個に決まっていなければ、その中で次の(一の位)で一番若い文字を選ぶ。
">最初は十のくらいで120円と1個に決まったのでここでは何もしない。"
4.1個に決まった物を除外して、対象がなくなるまで「1.」に戻る
">最初は120円を除外して、残りの(200円、130円、205円)で「1.」から行う。"

あとは「4.」で除外したものから並び替えれば
1回目除外:120円
2回目除外:130円
3回目除外:200円
4回目除外:205円
のように並び替わります。
2023.09.27 14:16
れいさん 
(No.7)
jjon-comさん、電タックさん
とても分かりやすい説明ありがとうございます!
ようやく理解できました。行のブロックでそれぞれ区切り、列ごとに辞書式ソートしていくのですね。一列、二列、三列・・・とソートしていくと確かにあのようになりました。
本当にありがとうございました!
2023.09.28 11:02

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop