亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何自定義c++快排函數的比較規則

c++
小樊
83
2024-08-28 00:31:18
欄目: 編程語言

要自定義C++快速排序(Quick Sort)函數的比較規則,你需要創建一個自定義的比較函數,并將其作為參數傳遞給排序函數

#include<iostream>
#include<vector>
#include<algorithm>

// 自定義比較函數
bool customCompare(int a, int b) {
    // 這里可以定義你自己的比較規則
    // 例如,按照絕對值從小到大排序
    return std::abs(a) < std::abs(b);
}

// 快速排序函數,接受自定義比較函數作為參數
template<typename T, typename Compare>
void quickSort(std::vector<T>& arr, int low, int high, Compare comp) {
    if (low >= high) {
        return;
    }

    int pivotIndex = low + (high - low) / 2;
    T pivot = arr[pivotIndex];

    int i = low, j = high;
    while (i <= j) {
        while (comp(arr[i], pivot)) {
            i++;
        }
        while (comp(pivot, arr[j])) {
            j--;
        }
        if (i <= j) {
            std::swap(arr[i], arr[j]);
            i++;
            j--;
        }
    }

    quickSort(arr, low, j, comp);
    quickSort(arr, i, high, comp);
}

int main() {
    std::vector<int> arr = {-5, 3, 2, 8, -1, 0, 3};

    // 使用自定義比較函數進行排序
    quickSort(arr, 0, arr.size() - 1, customCompare);

    for (int num : arr) {
        std::cout<< num << " ";
    }
    std::cout<< std::endl;

    return 0;
}

在這個示例中,我們定義了一個名為customCompare的自定義比較函數,該函數按照絕對值從小到大對整數進行排序。然后,我們修改了快速排序函數,使其接受一個比較函數作為參數,并在排序過程中使用這個自定義比較函數。最后,在main函數中,我們調用了quickSort函數,并傳入了自定義比較函數customCompare

0
湖口县| 通江县| 巫山县| 清涧县| 金川县| 闽侯县| 鸡西市| 凤庆县| 萝北县| 云安县| 高尔夫| 翁源县| 湟中县| 辽宁省| 云南省| 靖边县| 青龙| 秦安县| 新和县| 泊头市| 二连浩特市| 平邑县| 金乡县| 丹棱县| 衡山县| 芮城县| 高雄县| 淮阳县| 阳东县| 如东县| 东乡| 丘北县| 木兰县| 墨玉县| 岳西县| 邢台县| 山东省| 佛学| 洞头县| 青州市| 那坡县|