Heim > Backend-Entwicklung > C++ > Hauptteil

Der Unterschied zwischen C qsort() und C++ sort()

WBOY
Freigeben: 2023-09-20 21:25:02
nach vorne
1174 Leute haben es durchsucht

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

Hier sehen wir den Unterschied zwischen qsort() in C und sort() in C++.

C-Sprache bietet die Funktion qsort(), die zum Sortieren von Arrays verwendet werden kann. Die Parameter und Syntax der Funktion werden unten angezeigt.

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
Nach dem Login kopieren

Diese Funktion akzeptiert die Basisadresse des Arrays, die Anzahl der Elemente im Array, die Größe jedes Elements im Array und eine Vergleichsfunktion.

C++ stellt die Funktion sort() bereit, die sich in C++ STL befindet. Seine Parameter und Syntax werden unten angezeigt.

void sort(T first, T last, Compare c);
Nach dem Login kopieren

Es gibt keine Garantie dafür, dass die Reihenfolge der wiederholten Elemente erhalten bleibt. Um diesen Zweck zu erreichen, können wir den von C++ STL bereitgestellten Stable_sort verwenden.

Unterschied zwischen qsort() und sort()

qsort() in C sort() in C++
Es verwendet einen Schnellsortierungsalgorithmus. Es verwendet Introsort. Dies ist ein hybrider Sortieralgorithmus. Unterschiedliche Implementierungen verwenden unterschiedliche Algorithmen. GNU C++ STL verwendet eine dreiteilige Hybridsortierung. Introsort, Quicksort und Insertion Sort.
Der C-Standard erwähnt dieses Problem nicht.
Die Komplexität dieses Sortieralgorithmus. In diesem Fall beträgt die Komplexität der sort()-Funktion von C++11 O(n logn). Einige frühere Versionen der Funktion sort() hatten im ungünstigsten Fall eine Komplexität von O(n2), während ihre Komplexität im Durchschnittsfall O(nlogn) betrug. Die Laufzeit dieser Art wird mit verglichen Die Laufzeit von sort() ist kürzer als bei qsort(). qsort() ist für verschiedene Typen nicht flexibel genug. Die Laufzeit von sort() ist kürzer als bei qsort(). qsort() ist für verschiedene Typen nicht flexibel genug sort() ist flexibel. Es kann C-Arrays, C++-Vektoren, C++-Deques und einige andere Container sortieren. Diese Sortiermethode ist nicht typsicher, um auf Daten zuzugreifen. Dies Die Sortiertechnik ist sicherer. Für den Zugriff auf Daten sind keine unsicheren Leerzeiger erforderlich.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen C qsort() und C++ sort(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!