目录
一.排列方法:
说到排序,c++首选sort(),其平均复杂度为O(nlogn),但它不是很稳定的排序方法,而且许多题并不能运用sort()来解决。除了sort()以外,我们常用的还有快速排列和归并排列。
二.快速排列:
1.实现:
例如:有一个序列长度为8的序列a[7]={4,8,5,7,1,3,6,2}。
排列步骤:
1.先处理:选中一个元素放到x这个位置,将比a[x]小的元素全部放到左边,不比a[x]小的元素全部放在右侧。
2.分解问题:

3.问题合并:
当子问题无法分解,也就是只剩一个点的时候,处理结束。因为每个子问题有序,所以原问题也必定有序。
说明:若选中基准数字4,将序列分成两段,在实现过程中先指定一个指针p=1,在寻找比4小的数,如果找到,则指针右移动,且把数字放到当前位置。完成后,交换指针与l的位置即可。
2.代码呈现
一般我们会将快速排列写成函数形式

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



