快速排序(前后指针法)
时间复杂度:最坏:O(n^2)–>不会出现 最好:O(nlogn) 平均:O(nlogn)
空间复杂度:O(logn) 函数调用栈, 极端情况: O(n)–>不会出现
稳定性:不稳定
数据敏感:敏感
#include<stdio.h>
//升序
void Swap(int* array, int i, int j)
{
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
//三数取中
//这么做是为了防止数据如果是有序的,快排就变成了冒泡排,时间复杂度就变成了O(n^2)
int getMid(int* array, int begin, int end)
{
int mid = begin + (end - begin) / 2;
// begin, mid, end选择中间值的位置
if (array[