C++排列

目录

一.排列方法:

二.快速排列:

1.实现:

2.代码呈现

三.归并排列:

感谢各位大佬的阅读!


一.排列方法:

说到排序,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.代码呈现

一般我们会将快速排列写成函数形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值