![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
snowwwwi
这个作者很懒,什么都没留下…
展开
-
acm总结——归并排序
原理: 运用分治的思想,例如我们把一个无序数组分成[1, mid],[1, mid + 1]两个区间,将其分别排序完后再合并,当我们使用递归分成若干个区间后,当区间中仅有一个数便不需要先将区间排序再进行合并,我们只需回溯到上一个区间,最后便能得到一个有序序列。 操作: 我们分别需要进行两个操作:分割区间和归并区间 分割区间:我们可以利用递归,取一个L和R两个端点,每次取mid = (L + R) >> 1,然后递归一下(L, mid)、(mid + 1,R)两个区间,直至只有一个数 归原创 2022-03-14 20:51:32 · 370 阅读 · 0 评论 -
acm总结——快速排序
算法思想 将区间以某个点分为两部分,其中一部分放比这个点小的数,另一个区间放比这个点大的数 算法实现 在一个数组q[ ]的区间[L, R]里,取一个x = q[L + R >> 1],设两个指针,一个i = L - 1,另一个为j = R + 1,让两个指针进入while循环,以从小到大排序为例,当i指针跑到一个大于x的数则停下,j反之,然后交换q[i]和q[j],直到i>=j退出循环 代码实现 #include<bits/stdc++.h> using names原创 2022-03-16 19:51:58 · 459 阅读 · 0 评论