1.算法简介
对于包含n个数的数组来说,快速排序是一种最坏情况时间复杂度为O(n^2)的排序算法,不过虽然最坏情况时间复杂度很差,但是它的期望时间复杂度是O(nlgn),而且能够进行原址排序,在虚存环境中也能很好的排序,快速排序算法,用到了分治思想,也就是分而治之。
2.原理图示
![过程实现](https://i-blog.csdnimg.cn/blog_migrate/80ce860388d21492447c70e5c5dcf275.png)
![过程实现](https://i-blog.csdnimg.cn/blog_migrate/5aba76a99051c9a556d5f4b5159038e4.png)
3.伪代码与实现代码
![递归调用](https://i-blog.csdnimg.cn/blog_migrate/a1f2f6b052ff4299fc0078964bbb80b3.png)
递归调用
![排序核心](https://i-blog.csdnimg.cn/blog_migrate/1006c1d66ab4a29f7ac20cd04e137d48.png)
排序核心
4.完整代码
#include <iostream>
using namespace std;
int Partition1(int a[],int p,int r) {
int x = a[r]