半路出家,学习ing......
快排:
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
void swap(T *i, T *j){
T *temp;
temp = j;
j = i;
i = temp;
}
// increase
template <typename T>
void quicksort(vector<T> &invec, int &left, int &right){
int i = left;
int j = right;
T mid = invec[(i+j+1)/2];
while(i <= j){
while(invec[i] < mid){
++i;
}
while(invec[j] > mid){
--j;
}
if(i<=j){
swap(invec[i], invec[j]);
++i;
--j;
}
if(i<right){
quicksort(invec, i, right);
}
if(j>left){
quicksort(invec, left, j);
}
}
}
// decrease
void quicksort2(vector<int> &invec, int &left, int &right){
int i = left;
int j = right;
int mid = invec[(i+j)/2];
while(i<=j){
while(invec[i]>mid){
++i;