1. 堆排序
#include<iostream>
usingnamespace std;
void SwapValue(int &m, int &n)
{
int temp = m;
m = n;
n = temp;
}
void max_heap(vector<int> &vec, int i, int heap_size)
{
int l = 2*i;
int r = 2*i+1;
int largest = i;
if(l<=heap_size && vec[l-1]>vec[largest-1])
largest = l;
if(r<=heap_size && vec[r-1]>vec[largest-1])
largest = r;
if(largest!=i)
{
SwapValue(vec[largest-1],vec[i-1]);
max_heap(vec, largest, heap_size);
}
}
void heapSort(vector<int> &vec)
{
int heap_size = vec.size();
for(int i=heap_size/2; i>