Qsort()是什麼意思
qsort() 是一個 C 語言的標準函式庫,用於對陣列進行快速排序(Quicksort)。這個函式會接受一個指針,這個指針指向一個要排序的陣列,以及陣列中元素的類型、元素的大小(通常為 sizeof 運運算元計算出來的值),以及一個比較函式,這個函式用來定義元素間的大小關係。
qsort() 的基本語法如下:
void qsort(void *base, size_t num, size_t size,
           int (*compare)(const void *, const void *));- base:指向要排序的陣列的起始地址。
- num:要排序的元素數量。
- size:每個元素的大小(以 bytes 為單位)。
- compare:一個比較函式,它接受兩個元素的指針,並返回一個指示這些元素之間關係的整數:- 如果 (*compare)(a, b)返回一個正整數,表示a比b大。
- 如果 (*compare)(a, b)返回一個零,表示a與b相等。
- 如果 (*compare)(a, b)返回一個負整數,表示a比b小。
 
- 如果 
以下是一個簡單的範例,展示了如何使用 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() 使用的是指針,所以不需要在排序前將陣列拷貝到一個新的陣列中。排序過程會在原地進行,這意味著原始陣列的元素會被重新排列,而不會產生新的陣列。