Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Cara menggunakan fungsi qsort

Cara menggunakan fungsi qsort

DDD
DDDasal
2023-12-07 13:52:39874semak imbas

Fungsi qsort ialah fungsi perpustakaan dalam bahasa C yang digunakan untuk mengisih tatasusunan. Walaupun fungsi qsort adalah sangat umum dan boleh mengendalikan sebarang jenis tatasusunan, fungsi perbandingan boleh menjadi kompleks, terutamanya apabila berurusan dengan struktur data yang kompleks.

Cara menggunakan fungsi qsort

Fungsi qsort ialah fungsi perpustakaan dalam bahasa C yang digunakan untuk mengisih tatasusunan. Ia ditakrifkan dalam fail pengepala 8e359799bdf1a571032ba13cc96acda9 Prototaip fungsi qsort ialah:

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*));

Berikut ialah perihalan parameter bagi fungsi qsort:

  1. asas: Penunjuk kepada objek pertama tatasusunan yang akan diisih.

  2. nitem: Bilangan elemen dalam tatasusunan.

  3. saiz: Saiz setiap elemen, biasanya diperoleh menggunakan operator saiz.

  4. bandingkan: Fungsi perbandingan yang digunakan untuk menentukan susunan dua elemen. Fungsi ini harus menerima dua penunjuk, menunjuk kepada elemen yang hendak dibandingkan, dan mengembalikan nombor negatif jika elemen pertama kurang daripada kedua, 0 jika ia sama, dan nombor positif jika elemen pertama lebih besar daripada kedua.

Berikut ialah contoh penggunaan fungsi qsort, yang menyusun tatasusunan integer:

#include <stdio.h>  
#include <stdlib.h>  
  
// 比较函数,用于决定排序  
int compare(const void *a, const void *b) {  
    int int_a = *((int*) a);  
    int int_b = *((int*) b);  
  
    if (int_a == int_b) return 0;  
    else if (int_a < int_b) return -1;  
    else return 1;  
}  
  
int main() {  
    int i;  
    int numbers[] = {7, 3, 4, 1, -1, 23, 12, 43, -8, 5};  
    int size = sizeof(numbers) / sizeof(int);  
  
    // 对数组进行排序  
    qsort(numbers, size, sizeof(int), compare);  
  
    // 输出排序后的数组  
    for(i = 0; i < size; i++) {  
        printf("%d ", numbers[i]);  
    }  
  
    return 0;  
}

Nota: Walaupun fungsi qsort sangat serba boleh dan boleh mengendalikan sebarang jenis tatasusunan, fungsi perbandingannya boleh menjadi kompleks, Terutama apabila anda berurusan dengan struktur data yang kompleks. Semasa menulis fungsi perbandingan, pastikan ia berfungsi seperti yang anda jangkakan.

Atas ialah kandungan terperinci Cara menggunakan fungsi qsort. 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
Artikel sebelumnya:Cara menggunakan fungsi sprintfArtikel seterusnya:Cara menggunakan fungsi sprintf

Artikel berkaitan

Lihat lagi