中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何自定義qsort的比較函數

小樊
82
2024-10-16 07:25:02
欄目: 編程語言

在C語言中,qsort函數是用于對數組進行快速排序的標準庫函數。要自定義qsort的比較函數,你需要傳遞一個指向函數的指針作為參數,該函數應接受兩個指向要比較的元素的指針,并返回一個整數來指示它們的順序。

以下是一個自定義比較函數的示例,該函數按照降序比較兩個整數:

#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 -1;
    } else if (int_a < int_b) {
        return 1;
    } else {
        return 0;
    }
}

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

    // 使用自定義比較函數對數組進行排序
    qsort(arr, n, sizeof(int), compare);

    // 打印排序后的數組
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

在這個示例中,我們定義了一個名為compare的比較函數,它接受兩個指向整數的指針,并返回一個整數來指示它們的順序。然后,我們在main函數中使用qsort函數對數組進行排序,并將自定義比較函數作為參數傳遞給它。最后,我們打印排序后的數組以驗證結果。

0
浙江省| 屏东县| 尤溪县| 遵义市| 肃南| 江阴市| 镇沅| 福海县| 镇巴县| 三穗县| 宿松县| 迁安市| 博白县| 响水县| 山东| 洛阳市| 岳西县| 昭苏县| 吉安县| 扶风县| 石狮市| 十堰市| 抚宁县| 明溪县| 保靖县| 江门市| 苍溪县| 酒泉市| 广宗县| 大同市| 宁乡县| 怀柔区| 顺义区| 柯坪县| 常州市| 涞源县| 木里| 百色市| 玉山县| 富裕县| 江孜县|