バブルソートにおける 2 つの for ループの機能は何ですか?一番簡単な言葉で説明してもらえますか?
- WBOYオリジナル
- 2016-06-17 08:32:334720ブラウズ
返信内容:
もともと視覚的な写真を投稿したかったのですが、Zhihu が GIF 形式をサポートしていないことがわかりました。リンクを教えてください
http://upload.wikimedia.org/ wikipedia/commons/3/37/Bubble_sort_animation.gif
「バブル ソート」アルゴリズムのコアは次のとおりです。 泡。
バブルの作り方は?つまり、配列内の最小のものを 上に移動し、それをポップアップ します。このプロセスは、 とその隣接する要素 を交換することです。このリスクを取るプロセスは内部循環と呼ばれます。
リスクを伴うプロセスの後、 の最小要素が出現する可能性があります。配列内に n 個の要素がある場合、これが外側のループです。
ブログ投稿を添付します: なぜ比較ベースのアルゴリズムでは 5 つの要素を並べ替えるのに 7 回必要なのでしょうか?
バブリングとは、隣接するペアごとの比較と交換を複数回繰り返した後、そのたびに現在の配列内の最小の数値が先頭に「バブル」され、その後、この数値が除外され、残りの数値がこのプロセスを繰り返し続け、最終的に形成されることを意味します。順序付けられたシーケンス。
最初のループ (外側のループ) は、その番号を除外する役割を果たします。
2 番目のループ (内部ループ) は、ペアごとの比較と交換を担当します。
自分で配列を作成し、どこにでもあるコードでシミュレートすれば理解できるでしょう。
泡のグループについて考えてください
泡の 1 つが小さな女の子のパオに駆け寄って言いました。「妹、妹、ここに来て、どっちが大きいか比べてみよう。」と小さな女の子は言いました。大きいので、彼は小さな女の子の前に走って行き、目の前の兄にも言いました、「お兄さん、どっちが大きいか競争しましょう。」パオ兄弟は彼をひと目見て、正直になりました。これは、バブルが一度は誰とでも競争するためのインナーです。
そのバブルが静まるとすぐに、別のバブルが誰がより大きいかを競い始めました。各バブルは他のバブルと競争するために何かをします。
最初のループの目的は、毎回必要な泡を一番上まで泡立てることです
2 番目のループの目的は、すべての泡を泡立てるのに何回かかるかです。声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。