排序算法:快速排序
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
void QuickSort(int R[], int left, int right)
{
//基准值
int flag;
int i = left;
int j = right;
if (left < right)
{
flag = R[left];
while (i < j)
{
//右边找到小于基准值
while (j > i && R[j] >= flag)
j--;
if (i < j)
{
R[i] = R[j];
i++;
}
while (j > i && R[i] < flag)
i++;
if (i < j)
{
R[j] = R[i];
j--;
}
}
R[i] = flag;
QuickSort(R, left, i - 1);
QuickSort(R, i + 1, right);
}
}
int main()
{
int R[] = { 49, 38, 65, 91, 76, 13, 27, 49 };
QuickSort(R, 0, 7);
for (int i = 0; i < 7; i++)
cout << R[i] << " ";
system("pause");
return 0;
}
时间复杂福:
最坏O(n*n)
最好O(nlogn)
平均O(nlogn)
空间复杂福:
O(nlogn)需要用到栈