999999999999999999999999的快速排序的时间与数字(使用代码查答案)

不说废话

上代码

#include
#include 
#include 
#include
using namespace std;
void max_heapify(vector &nums, int beg, int end)
{
    int curr = beg;
    int child = curr * 2 + 1;
    while (child < end) {
        if (child + 1 < end &&nums[child] < nums[child + 1])
            child++;
        if (nums[curr] < nums[child]) {
            swap(nums[curr], nums[child]);
            curr = child;
            child = 2 * curr + 1;
        }
        else
            break;
    }
}
void heap_sort(vector &nums)
{
    int n = nums.size();
    for (int i = n / 2 + 1; i >=0; i--)
    {
        max_heapify(nums, i, nums.size() - 1);
    }
    for (int i = n - 1; i > 0; i--)
    {
        swap(nums[0], nums[i]);
        max_heapify(nums, 0, i);
    }
}
int a[100000000],n;
int main()
 {
 cin >>n;
for (int c=0;c vec(a,a+n);
 heap_sort(vec);
 int endtime = clock();
 cout<

你可能感兴趣的:(C++,c++,蓝桥杯,算法)