ホームページ  >  記事  >  バックエンド開発  >  バブルソートにおける 2 つの for ループの機能は何ですか?一番簡単な言葉で説明してもらえますか?

バブルソートにおける 2 つの for ループの機能は何ですか?一番簡単な言葉で説明してもらえますか?

WBOY
WBOYオリジナル
2016-06-17 08:32:334720ブラウズ

返信内容:

もともと視覚的な写真を投稿したかったのですが、Zhihu が GIF 形式をサポートしていないことがわかりました。リンクを教えてください

upload.wikimedia.org/ wi

「バブル ソート」アルゴリズムのコアは次のとおりです。 泡。

バブルの作り方は?つまり、配列内の最小のものを 上に移動し、それをポップアップ します。このプロセスは、 とその隣接する要素 を交換することです。このリスクを取るプロセスは内部循環と呼ばれます。

リスクを伴うプロセスの後、 の最小要素が出現する可能性があります。配列内に n 個の要素がある場合、これが外側のループです。

ブログ投稿を添付します: なぜ比較ベースのアルゴリズムでは 5 つの要素を並べ替えるのに 7 回必要なのでしょうか? バブリングとは、隣接するペアごとの比較と交換を複数回繰り返した後、そのたびに現在の配列内の最小の数値が先頭に「バブル」され、その後、この数値が除外され、残りの数値がこのプロセスを繰り返し続け、最終的に形成されることを意味します。順序付けられたシーケンス。
最初のループ (外側のループ) は、その番号を除外する役割を果たします。
2 番目のループ (内部ループ) は、ペアごとの比較と交換を担当します。

自分で配列を作成し、どこにでもあるコードでシミュレートすれば理解できるでしょう。
泡のグループについて考えてください
泡の 1 つが小さな女の子のパオに駆け寄って言いました。「妹、妹、ここに来て、どっちが大きいか比べてみよう。」と小さな女の子は言いました。大きいので、彼は小さな女の子の前に走って行き、目の前の兄にも言いました、「お兄さん、どっちが大きいか競争しましょう。」パオ兄弟は彼をひと目見て、正直になりました。これは、バブルが一度は誰とでも競争するためのインナーです。
そのバブルが静まるとすぐに、別のバブルが誰がより大きいかを競い始めました。各バブルは他のバブルと競争するために何かをします。 最初のループの目的は、毎回必要な泡を一番上まで泡立てることです
2 番目のループの目的は、すべての泡を泡立てるのに何回かかるかです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。