- 博客(2)
- 收藏
- 关注
原创 算法学习:快速排序
快速排序 本质-----分治 快速排序的步骤 1、确定分界点x 数组中的q[l],q[(l+r)/2],q[r],或者随机一个数都可以 2、调整区间,使得左边的数都<=x,右边的数都>=x(重点) 3、对左右两边递归处理 如何调整区间————双指针 设定两个指针i,j分别指向数组左右两头,然后让其往中间走。若i指向的数都<=x,则一直往前走,直到遇到>=x的数时停下。接着j也往中间走,直到遇到<=x的数停下。 ...
2021-09-24 16:52:31
46
原创 数的范围
数据范围 输入 输出 思路:此题需要对第一次出现的位置和最后出现的位置分别二分,我们需要找出一个性质,来对左右区间的更新进行判断。 由于题目给定了为升序排列的数组,于是在找第一次出现的位置时,若q[mid]>=要找的数,则mid之后的所有数都大于要找的数,直接将r更新为mid,否则l更新为mid+1. 之后以此类推。 #include<iostream> using namespace std; const int N=1e6+10; int q[...
2021-09-22 17:16:30
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人