Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah kaedah pengisihan yang digunakan oleh fungsi isihan dalam c++

Apakah kaedah pengisihan yang digunakan oleh fungsi isihan dalam c++

下次还敢
下次还敢asal
2024-04-28 18:21:12513semak imbas

Fungsi isihan dalam C++ menggunakan algoritma isihan pantas, yang berfungsi mengikut langkah-langkah: Pilih pangsi dan bahagikan tatasusunan. Ulang langkah 1 secara rekursif untuk subarray kiri dan kanan sehingga pengisihan selesai. Kelebihan isihan pantas termasuk kerumitan masa purata O(n log n) dan kerumitan ruang yang rendah, tetapi kelemahannya ialah ia mungkin merosot kepada kerumitan O(n^2) dalam kes yang melampau, dan ia bukan algoritma pengisihan yang stabil .

Apakah kaedah pengisihan yang digunakan oleh fungsi isihan dalam c++

Algoritma isihan yang digunakan oleh fungsi isihan dalam C++

Fungsi sort dalam C++ menggunakan algoritma isihan pantas.

Isih Pantas

Isih Pantas ialah algoritma pengisihan bahagi dan takluk yang berfungsi mengikut langkah berikut:

  1. Pilih Pangsi: Ambil elemen pertama dalam tatasusunan sebagai pangsi.
  2. Pembahagian: Lintas tatasusunan, gerakkan elemen yang lebih kecil daripada pangsi ke kiri dan elemen yang lebih besar daripada pangsi ke kanan.
  3. Rekursi: Ulang langkah 1-2 untuk subarray kiri dan subarray kanan.

Kelebihan:

  • Purata kerumitan masa ialah O(n log n).
  • Kerumitan ruang rendah (O(1)).
  • Pantas untuk kebanyakan set data.

Kelemahan:

  • Dalam kes tertentu (contohnya, tatasusunan diisih atau diterbalikkan), kerumitan masa merosot kepada O(n^2).
  • Isihan tidak stabil (elemen yang sama mungkin tidak berada dalam susunan asal tatasusunan yang diisih).

Atas ialah kandungan terperinci Apakah kaedah pengisihan yang digunakan oleh fungsi isihan dalam c++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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