题目描述
对于本题我个人认为,要做的细一点。
首先我补充一下递归的定义:递归的基本思想就是把大的问题转化为小的相似问题来解决。你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它。若干次之后,你打开面前的门后,发现只有一间屋子,没有门了。然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门。
样例
1.确定分界点,
分界点比较任意,它就如同量子一样,如果不去观测它,它就可能出现在区间内的任意位置
2.调整区间
好了,当我们观测到分界点后便要对其进行处理,
简单理解为小于等于它的放在左边,大于等于它的放在右边
3.递归处理相似的子问题
把一个区间划分成两个区间,如同俄罗斯套娃一样把其划分成简单的子问题。
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
void quick_sort(int q[],int l, int r){
if(l>=r) return; ``
int i=l-1,r=l+1,x=q[r+l>>1];
while(i[HTML_REMOVED]x);
if(i<j)swap(q[i],q[j]);
}
quick_sort(q,l,j);
quick_sort(q,j+1,r);
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla