昨年、私は「幼稚園のための量子力学」に関する素晴らしい論文を読んでいました。簡単な紙ではありませんでした。
今、私は可能な限り簡単な言葉でクイックソートを説明する方法を疑問に思います。平均複雑度がであることを(または少なくとも手波で)どのように証明できますか?または少なくとも小学校では?
昨年、私は「幼稚園のための量子力学」に関する素晴らしい論文を読んでいました。簡単な紙ではありませんでした。
今、私は可能な限り簡単な言葉でクイックソートを説明する方法を疑問に思います。平均複雑度がであることを(または少なくとも手波で)どのように証明できますか?または少なくとも小学校では?
回答:
基本的に、Quicksortは次のとおりです。
地球上の4歳ごとに1と2を実行できると思います。再帰についてはもう少し説明が必要かもしれませんが、彼らにとってそれほど難しくはないはずです。
複雑さに関しては、最悪の場合はかなり簡単です。ソート済みの配列を考えてみましょう。
1 2 3 4
2 3 4
3 4
4
それがかなり簡単に見られ(そして証明されます)。
私は平均的なケースの証拠に精通していないので、それについて提案することはできません。長さソートされていない配列では、最小または最大のアイテムを選択する確率は2と言うことができます。、だから...?
クイックソートは、基本的なカウントと2による除算を理解していれば、実際には非常に簡単に理解できます。次に、説明を示します。
OK、ここには20枚のカードのデッキがあります。順番に並べたいので、1が最初、2、3のようになります。これを行う非常に簡単な方法を次に示します。
まず、このデッキを調べて、2つの山を作りましょう。20の半分は10であるため、10より大きいものは右側のこのパイルに入れられ、小さいものは左側のこのパイルに入れられます。(必ず、デモを行ってください。)
さて、小さなパイルでも同じことをしましょう。10の半分は何ですか?(誰かが「5!」と言います)そうです!したがって、右側のこのパイルには5より大きいものが入り、左側のこのパイルには小さいものが入ります。
そしてここに、10より大きいグループがあります。10の半分は5で、10プラス5は何ですか?(誰かが「15!」と言います)そうです!したがって、15を超えるものは右側のこのパイルに入れられ、15を超えるものは左側のこのパイルに入れられます。
そして今、パイルは十分に小さくなり、それらを簡単に見て整理することができます。見て、ここにある
2, 4, 5, 3, 1
。したがって、このように切り替えるだけで、を見ることができます1, 2, 3, 4, 5
。他のパイルでも同じことをしてみましょう。パイルを順番に並べて見てみましょう。それらは1から20の順番です!
おめでとう。たくさんの子供たちに、適応型クイックソートアルゴリズムの基本原理を教えました!あなたは精神的な成熟度に応じてそれよりも少し深くすることができますが、この点をはるかに超えて進むには、正式な論理をある程度理解する必要があります。
その複雑さを証明することに関しては、それはより複雑です。正式なロジックを必要とするものの1つであり、そもそもbig-O表記の基本原則を理解する必要があります。最初はその部分を控えておきたいかもしれません。
この小さなデモのグラフィカルな美しさをご覧ください。
。