|
マージを理解していればプログラムをじっくり読まなくてもいいって開設には書いてあった ・・・マージなんて知らないよぉぉぉ プログラムを読んでいてわかったこと 退避用の配列を用意すべし!!!ここではtemp[ ]でした。。。 これを用意しないとoutput[ ]に戻したときに数が重なってデータがなくなっちゃうんだよねっ a 答え エ aの下にある条件を見ると b_yet=false or(a_yet=true ane b_yet=true and temp[a_idx - span_idx]<=output[b_idx]) b_yetが偽 または a_yetとb_yetが真でありtemp[ ](作業用の配列)が整列されていない a_yetとb_yetどちらかがtrueの時にはまだ並び替えが終了していないので処理を続けないといけない♪ b 答え オ write_idxはoutput[ ]の添字 output[ ]に並び替えの完了した数値が入ったなら添字を進めないとね☆ c 答え ウ 配列の要素数が先のものと変わらないから回数は3回 d 答え イ 先の配列と違い3回目の併合をやろうとしてももう2回目の併合できれいに数値が並び替えられている☆ e 答え ウ この処理は途中ですでに併合が済んでしまっている場合処理を終わるという課程を加えるためのもの
併合を終えた最終数値と今から併合する数値の大小を比べて順序良く並んでいれば併合を終わりにするためにorderedにfalseを入れる |

- >
- Yahoo!サービス
- >
- Yahoo!ブログ
- >
- 練習用





