web-dev-qa-db-ja.com

std :: sortはQuicksortを実装していますか?

可能性のある複製:
sort()関数で使用されるソートのタイプ

Std :: sortはQuicksortを実装していますか?

35
ajay

従来使用されているアルゴリズムは2つあります。

std::sort を使用する可能性が最も高い QuickSort 、または少なくとも IntroSort と呼ばれるQuickSortのバリエーション。 HeapSort 再帰が深すぎる場合。

標準から:

複雑さ:O(N log(N))比較。

std::stable_sortは、安定性の要件のため、 MergeSort を使用する可能性が最も高くなります。ただし、MergeSortを効率的に使用するには余分なスペースが必要です。

標準から:

複雑さ:最大Nログ2(N)比較;十分な追加メモリが利用可能な場合、N log(N)です。

std::sort実装 TimSort はまだ見当たらず、Python(実際に作成された)、Javaで採用されていますおよびAndroid(現在まで)。

39
Matthieu M.

クイックソートまたはイントロソートを使用します。

http://www.sgi.com/tech/stl/sort.html

1
XAder

ウィキペディアから-

特定のソートアルゴリズムは必須ではなく、実装によって異なる場合があります。 Wikiリンクの並べ替え

0
Mahesh