Qsort()是什麼意思

qsort() 是一個 C 語言的標準函式庫,用於對陣列進行快速排序(Quicksort)。這個函式會接受一個指針,這個指針指向一個要排序的陣列,以及陣列中元素的類型、元素的大小(通常為 sizeof 運運算元計算出來的值),以及一個比較函式,這個函式用來定義元素間的大小關係。

qsort() 的基本語法如下:

void qsort(void *base, size_t num, size_t size,
           int (*compare)(const void *, const void *));

以下是一個簡單的範例,展示了如何使用 qsort() 來排序一個整數陣列:

#include <stdlib.h>
#include <stdio.h>

int compare(const void *a, const void *b) {
    const int *ia = a;
    const int *ib = b;
    return *ia < *ib ? -1 : (*ia > *ib ? 1 : 0);
}

int main() {
    int array[] = {5, 3, 8, 2, 7};
    int num = sizeof(array) / sizeof(array[0]);
    qsort(array, num, sizeof(array[0]), compare);
    for (int i = 0; i < num; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");
    return 0;
}

這個範例程式會輸出:

2 3 5 7 8

因為 qsort() 使用的是指針,所以不需要在排序前將陣列拷貝到一個新的陣列中。排序過程會在原地進行,這意味著原始陣列的元素會被重新排列,而不會產生新的陣列。