最適化の4種類のクイックソート

最適化の4種類のクイックソート

この記事では、唯一の概念を説明しています。

基準値の選択(最適化の4種類を記載していません)

三つの方法基準値の選択肢がありますが、基準値の選択は良いですが、パフォーマンスのクイックソートは良くなります。

  • 固定された基準(すなわち、ソート基準として位置から始まる、任意の最適化をすることなく、簡単な方法は非常に迅速であり、ドレイン)
  • ランダムベース(及び固定基準ほとんど)
  • 基準値として、中間データに3つのデータを見つけるために番号3、パイルからわずかに最適化され、ランダムなデータの数への参照を取り、わずかな最適化であると言うことができます。

ここでは最適化の4種類について話をします

データが一定のサイズに達する1.使用ヒープソートや挿入ソートのために選択されます

挿入ソート

特定のサイズに達した後、再帰的配列は、以下の各再帰に対してアレイ内のデータ要素は、(典型的には<= 16)、再帰再帰の見かけ上の深さを増加させるであろう、再帰の深さを減少させる、直接挿入ソートを選択することができる場合であります業務効率を向上させます。

ヒープソート

場合再帰のより深い深さ、従って再帰の深さを減少させる、ヒープの並べ替えを使用することができるアレイ内の各再帰以上の要素、言及ソート性能。

メモリ最適化末尾再帰的2.使用

テール再帰:簡単な理解は、この再帰呼び出しは、呼び出し元の関数内の変数のデータに影響を及ぼさないであろうということです。末尾再帰は、関数呼び出し、再帰呼び出しのブロックスタック空間上のスペースを再利用することです。
クイックソートの再帰呼び出しは、効率を改善するために、末尾再帰モードすることができます。

3.要素を集めます

各ソート基準値の両側に配置することができ、次に分類することができ、同じ要素の参照値は、これらの基準値の左右両側から直接注文した後、排出。
最初のパス:[7] [2] [3] [1]〜[7] [4] [7] [9] [7] [8]
に変更することができる。[4] [2] [3] [ 1] [7] [7] [7] [7] [9] [8]
第2のパスが左から右及びスタート9から直接起動することができ、それによって大幅に高速放電時に反復エレメントの消費を低減しますオーバーヘッド。

4.マルチスレッドの並べ替え

各スレッド内部ソートは、次に、各データに割り当てられたスレッドのスレッドを作成し、最終的に効果のようなものを達成するためのアプローチを統合することによって、「pthred」機能をソート使用スレッドをマルチスレッド。

  1. いくつかの部分に最初の大規模なデータは、各スレッドに割り当てられます。
  2. 内部データはすぐに各スレッド、各スレッド内部の順序を並べ替えます。
  3. 次いで、内部複数のスレッド間に、これらのデータを組み合わせた、マージソートマージデータを使用してもよいです。
公開された52元の記事 ウォン称賛26 ビュー3387

おすすめ

転載: blog.csdn.net/weixin_43796685/article/details/104911240