Rumah > pembangunan bahagian belakang > C++ > Perbezaan antara C qsort() dan C++ sort()

Perbezaan antara C qsort() dan C++ sort()

WBOY
Lepaskan: 2023-09-20 21:25:02
ke hadapan
1311 orang telah melayarinya

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

Di sini kita akan melihat perbezaan antara qsort() dalam C dan sort() dalam C++.

Bahasa C menyediakan fungsi qsort(), yang boleh digunakan untuk mengisih tatasusunan. Parameter dan sintaks fungsi ditunjukkan di bawah.

void qsort(void *base, size_t num, size_t size, int (*comparator) (const void*, const void*));
Salin selepas log masuk

Fungsi ini menerima alamat asas tatasusunan, bilangan elemen dalam tatasusunan, saiz setiap item dalam tatasusunan dan fungsi perbandingan.

C++ menyediakan fungsi sort(), yang terletak dalam C++ STL. Parameter dan sintaksnya ditunjukkan di bawah.

void sort(T first, T last, Compare c);
Salin selepas log masuk

Tiada jaminan bahawa susunan elemen berulang terpelihara. Untuk mencapai tujuan ini, kita boleh menggunakan stable_sort yang disediakan oleh C++ STL.

Perbezaan antara qsort() dan sort()

qsort() dalam C sort() dalam C++
Ia menggunakan algoritma isihan pantas. Ia menggunakan introsort. Ini adalah algoritma pengisihan hibrid. Pelaksanaan yang berbeza menggunakan algoritma yang berbeza. GNU C++ STL menggunakan jenis hibrid tiga bahagian. Introsort, Quicksort dan Insertion Sort.
Piawaian C tidak menyebut isu ini.
Kerumitan algoritma pengisihan ini. Dalam kes ini, kerumitan fungsi sort() C++11 ialah O(n logn). Beberapa versi sebelumnya bagi fungsi sort() mempunyai kerumitan kes terburuk O(n2), manakala dalam kes purata kerumitannya ialah O(nlogn). Masa berjalan seperti ini dibandingkan dengan sort() masa berjalan kurang daripada qsort(). qsort() tidak cukup fleksibel untuk jenis yang berbeza. sort() masa berjalan kurang daripada qsort(). qsort() tidak cukup fleksibel untuk jenis yang berbeza sort() adalah fleksibel Ia boleh mengisih tatasusunan C, vektor C++, deque C++ dan beberapa bekas lain. Kaedah pengisihan ini tidak selamat jenis. Ini teknik pengisihan adalah lebih selamat. Ia tidak memerlukan penggunaan sebarang penunjuk kosong yang tidak selamat untuk mengakses data.

Atas ialah kandungan terperinci Perbezaan antara C qsort() dan C++ sort(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan