溫馨提示×

c++ qsort如何處理數組排序

c++
小樊
104
2024-11-25 05:57:32
欄目: 編程語言

qsort 是 C++ 中的一個庫函數,用于對數組進行排序。它接受一個數組指針、數組大小和一個比較函數作為參數。以下是一個簡單的示例,展示了如何使用 qsort 對整數數組進行升序排序:

#include <iostream>
#include <cstdlib> // 包含 qsort 函數的頭文件

// 比較函數,用于比較兩個整數的大小
int compare(const void *a, const void *b) {
    return (*(int *)a - *(int *)b);
}

int main() {
    int arr[] = {5, 3, 8, 1, 6};
    int n = sizeof(arr) / sizeof(arr[0]);

    // 使用 qsort 對數組進行排序
    qsort(arr, n, sizeof(int), compare);

    // 輸出排序后的數組
    for (int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
    }

    return 0;
}

在這個示例中,我們首先定義了一個名為 compare 的比較函數,它接受兩個指向 void 類型的指針作為參數。然后,我們在 main 函數中使用 qsort 對整數數組 arr 進行排序。qsort 的第一個參數是數組指針,第二個參數是數組大小,第三個參數是數組元素的大?。ㄔ谶@里是 sizeof(int)),第四個參數是比較函數指針。

在比較函數中,我們將傳入的指針轉換為 int 類型,并計算它們的差值。如果返回值為負數,說明第一個參數小于第二個參數;如果返回值為正數,說明第一個參數大于第二個參數;如果返回值為零,說明兩個參數相等。這樣,qsort 就可以根據這個比較函數對數組進行排序。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女