- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アルゴリズムの問題なのですが、マージソートとクイックソートについて教え)
マージソートとクイックソートについて教えてください
このQ&Aのポイント
- マージソートとクイックソートについて説明します。マージソートは分割統治法に基づくアルゴリズムで、与えられた数列を再帰的に分割し、統合してソートします。
- マージソートの手順を具体的に説明します。与えられた数列を分割し、それぞれの部分列を再帰的にソートします。次に、ソートされた部分列を統合して最終的なソート結果を得ます。
- クイックソートは分割統治法に基づくアルゴリズムで、与えられた数列を適切なピボット要素を選択し、それを基準に分割してソートします。効率の良いピボットを選ぶことが重要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
マージソートについて (21 99 38)(22 15 6) ↓ (21 99)(38)(22 15)(6) この操作の分割回数は、右側の分割と左側の分割は別々の分割ですから2回と数えるべきです。 クイックソートは、正確には、 (21 99 38 22 15 6) ↓ (15 6)(21)(99 38 22) (ピボット=21) ↓ (6)(15)(21)(22 38)(99) (ピボット=15) ↓ (6)(15)(21)(22)(38)(99) (ピボット=38) のように書いたほうがいいでしょう。 >(6)(15)(21)(22)(38)(99) (15と38を選んだ) >これではいけないのでしょうか。 単に、最後の2つを一緒にしただけです。 試験問題なら採点者がどう判断するかですから何とも言えません。 参考書に書いてあることなら、あなたが自分のほうが正しいと思っているならそれでいいのではないですか。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
まずマージソートの方から: (21 99 38 22 15 6) とか (21 99)(38)(22 15)(6) とかは何を意味するのですか? そして, あなたは何をどう数えて「分割回数」や「統合回数」を 3回としたのですか? ついでクイックソートの方: 同じく (15 6)(21)(99 38 22) などは何を意味するのですか? そして, 分割するアルゴリズムによって回数が変わる可能性があるのでアルゴリズムを示してください.
お礼
マージソートはわかりました! 私は一列変わったら1と数えていました。 クイックソートの >>(6)(15)(21)(22 38)(99) (ピボット=15) ここの部分なのですが、ピボットが15を選んでいるにもかかわらず、(22 38)(99)と分けるのでしょうか。