ACwing-排序和二分
排序
一、快速排序-基于分治法
1.确定分界点:q[l]最左值或q[(l+r)/2]中间值或q[r]最右值或随机
2.调整区间:让<=x的在左半边,>=x的在右半边,但分界点上的数不一定是x
暴力做法:a[],b[],扫描q[l~r],小于x的放a[]里,大于x的放b[]里,再都放进q[]里
优美做法:左右两指针,分别往中间走,如果i所指数值<x,后移一位,如果>=x,i停下来,再移动j,j同理,找到那个数,两者交换,继续往后走,直到ij相遇
3.递归处理:给左边排序,给右边排序
#
原创
2022-03-03 22:03:00 ·
25 阅读 ·
0 评论