ソートアルゴリズムは、基本的に必要であり、深く論争の厄介な組み合わせです。 インタビューで印象づけるために見ている新しいエンジニアから急速に規模のデータベースに解決を捜している古いエンジニアに考慮に入れるべき無数の要因がある。 二つのオブジェクト間の比較の速度は何ですか? スワップの時間は何ですか? データベースの大きさはどのくらいですか? それにはどのような種類のオブジェクトが含まれていますか? それはすでに半ソートされていますか? 結果は安定する必要がありますか?
これらの質問のそれぞれは、あるアルゴリズムまたは別のアルゴリズムに有利な引数を引き出すことができます。 ソースデータは大規模で複雑ですか? ほとんどの言語は、O(n log n)時間の複雑さを持つ標準のクイックソートにデフォルト設定されています。 それは小さいですか? 挿入の並べ替えはそれらの驚異を働かせる。 主にソート? ヘック、バブルソートはほとんどそのために働くかもしれません。 それぞれのメリットを読んだり視覚化したりしたい場合は、この比較を次のようにしてチェックしてくださいtoptal.com…..
そのサイトでは見つからないソートアルゴリズムの1つ、または他のほとんどのものはTim Sortです。 このあいまいなソートは現在Pythonに固有のもので、デフォルトのソートアルゴリズムとして使用されています。 Pythonでarray.sort
を呼び出すと、Tim Sortが実行されます。 それにもかかわらず、Tim Sortを知り、理解しているエンジニアを見つけることはまれです。 だから:それは何ですか?