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

溫馨提示×

如何測試c++快排函數的正確性

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

要測試C++快速排序(Quick Sort)函數的正確性,可以遵循以下步驟:

  1. 編寫一個快速排序函數:首先,你需要實現一個快速排序算法。這是一個簡單的快速排序實現:
#include<iostream>
#include<vector>
using namespace std;

int partition(vector<int>& arr, int low, int high) {
    int pivot = arr[high];
    int i = low - 1;

    for (int j = low; j <= high - 1; j++) {
        if (arr[j]< pivot) {
            i++;
            swap(arr[i], arr[j]);
        }
    }
    swap(arr[i + 1], arr[high]);
    return (i + 1);
}

void quickSort(vector<int>& arr, int low, int high) {
    if (low< high) {
        int pi = partition(arr, low, high);

        quickSort(arr, low, pi - 1);
        quickSort(arr, pi + 1, high);
    }
}
  1. 創建測試用例:為了驗證快速排序函數的正確性,你需要創建一些測試用例。這些測試用例應該包括不同類型的輸入數組,例如已排序數組、逆序數組、具有重復元素的數組等。
vector<vector<int>> test_cases = {
    {1, 2, 3, 4, 5},
    {5, 4, 3, 2, 1},
    {1, 3, 5, 2, 4},
    {1, 1, 1, 1, 1},
    {1, 2, 3, 2, 1},
    {}, // 空數組
};
  1. 編寫測試函數:編寫一個測試函數,用于檢查快速排序函數是否按升序對數組進行排序。
bool isSorted(const vector<int>& arr) {
    for (size_t i = 1; i < arr.size(); i++) {
        if (arr[i - 1] > arr[i]) {
            return false;
        }
    }
    return true;
}
  1. 運行測試:遍歷所有測試用例,對每個用例調用快速排序函數,并使用測試函數檢查結果。
int main() {
    for (auto& test_case : test_cases) {
        quickSort(test_case, 0, test_case.size() - 1);
        if (!isSorted(test_case)) {
            cout << "Test case failed: ";
            for (int num : test_case) {
                cout<< num << " ";
            }
            cout<< endl;
        } else {
            cout << "Test case passed."<< endl;
        }
    }
    return 0;
}
  1. 分析結果:運行上述代碼,觀察輸出結果。如果所有測試用例都通過,那么你的快速排序函數應該是正確的。如果有任何失敗的測試用例,請檢查快速排序函數以找到錯誤并修復它。

0
县级市| 平舆县| 眉山市| 阳高县| 黄山市| 砀山县| 山东省| 正阳县| 个旧市| 日喀则市| 温宿县| 来凤县| 安远县| 台湾省| 崇阳县| 兴安盟| 襄城县| 高雄县| 舟山市| 噶尔县| 江都市| 开鲁县| 响水县| 郧西县| 新乡市| 郎溪县| 邳州市| 保亭| 和政县| 巨鹿县| 营口市| 望江县| 中阳县| 霸州市| 和龙市| 大连市| 鄂尔多斯市| 泰宁县| 临沧市| 将乐县| 乌鲁木齐县|