最典型的分治算法是归并排序

    1. void mergeSort(vector<int>& nums, int left, int right)
    2. {
    3. int mid = left + (right - left) / 2;
    4. // 1. 分:将数组分为左、右两个子数组,分别递归排序
    5. mergeSort(nums, left, mid);
    6. mergeSort(nums, mid + 1, right);
    7. // 2. 合:将排好序的左、右子数组进行合并
    8. merge(nums, left, mid, right);
    9. }