C qsort() と C++ sort() の違い

WBOY
リリース: 2023-09-20 21:25:02
転載
1271 人が閲覧しました

C qsort()与C++ sort()的区别

ここでは、C 言語の qsort() と C 言語の sort() の違いを見ていきます。

C 言語には、配列の並べ替えに使用できる qsort() 関数が用意されています。関数のパラメータと構文を以下に示します。

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
ログイン後にコピー

この関数は、配列のベース アドレス、配列内の要素の数、配列内の各項目のサイズ、および比較関数を受け取ります。

C は、C STL にある sort() 関数を提供します。そのパラメータと構文を以下に示します。

void sort(T first, T last, Compare c);
ログイン後にコピー

繰り返される要素の順序が保持されるという保証はありません。これを実現するには、C STL が提供するsteady_sort を使用します。

qsort() と sort() の違い

##クイックソートアルゴリズムを使用します。 イントロソートを使用します。これはハイブリッド並べ替えアルゴリズムです。実装が異なれば、使用するアルゴリズムも異なります。 GNU C STL は 3 つの部分からなるハイブリッド ソートを使用します。イントロソート、クイックソート、挿入ソート。 C 標準では この問題については言及されていません。 この並べ替えアルゴリズムの複雑さ。
C の qsort() C のsort()
この場合、C 11 の sort() 関数の複雑さは O(n logn) です。 sort() 関数の一部の以前のバージョンでは、最悪の場合の複雑さは O(n2) でしたが、平均的な場合の複雑さは O(nlogn) でした。 この種の実行時間は、 sort()実行時間は qsort() よりも短くなります。 qsort() は、さまざまな型に対して十分な柔軟性がありません。 sort()実行時間は qsort() よりも短くなります。 qsort() はさまざまな型に対して十分な柔軟性がありません sort() は柔軟性があり、C 配列、C ベクトル、C デキュー、その他のコンテナーを並べ替えることができます。 この並べ替えメソッドはタイプセーフではありません。データにアクセスするために安全でない void ポインタを使用します。この並べ替え手法はより安全です。データにアクセスするために安全でない void ポインタを使用する必要はありません。 #

以上がC qsort() と C++ sort() の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート