91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何自定義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
凌云县| 东明县| 古田县| 林芝县| 陕西省| 澄江县| 宝丰县| 利辛县| 康保县| 萨迦县| 福安市| 万全县| 邵东县| 黄浦区| 灵宝市| 务川| 德兴市| 平昌县| 麻阳| 汪清县| 阜宁县| 垫江县| 牟定县| 策勒县| 米脂县| 雷波县| 德庆县| 万载县| 建湖县| 道真| 施甸县| 彭州市| 广水市| 吉林省| 房产| 旺苍县| 温州市| 凤庆县| 安福县| 襄垣县| 玉山县|