首页 > 解决方案 > 仅使用一个参数(整数向量)和第一个元素作为枢轴的快速排序

问题描述

我需要在 C++ 中实现一个快速排序算法,这通常很容易,但问题是我只能将向量作为我的参数,并且必须选择第一个元素作为枢轴。我只需要返回我的算法进行的比较次数。这是我的功能,无法更改,因为我无法控制 main.cpp 文件,只能控制 quicksort.cpp 和 quicksort.h 文件。

 long long QuickSort(vector<int> & a)

标签: c++

解决方案


没有什么可以阻止您QuickSort调用(递归)辅助函数。

例如:

static long long QuickSortWorker(vector<int> &a, size_t start, size_t length) {
    ...
}

long long QuickSort(vector<int> &a) {
    return QuickSortWorker(a, 0, a.size());
}

推荐阅读