Algs4-2.3.9请说明Quick.sort()在处理只有两种、三种主键值时的行为

本文详细解析了QuickSort算法在处理仅含两种及三种主键值的数组时的具体行为,包括不必要的交换情况和递归调用的影响,揭示了算法在面对重复值和有序数组时的性能特点。

2.3.9请说明Quick.sort()在处理只有两种主键值的数组时的行为,以及在处理只有三种主键值的数组时的行为。
1)两种主键值时
1.1)小元素作为分界元素,子数组剩余的元素两端也是小元素时,会进行一次交换,这是不必要的交换,这个在有重复值时也会出现这种不必要的交换。
1.2)大元素作为分界元素,子数组剩余的元素两端也是大元素时,会进行一次交换,这是不必要的交换,这个在有重复值时也会出现这种不必要的交换。
1.3)在有序的情况下,仍就会递归调用,使得对比次数增加,如果一开始先找到大值,然后从两端向中移动指针,当两指值指向的元素值不同时,小值放左边,大值放右边,对比次数就是线性。

2)三种主键值时
1.1)小元素作为分界元素,子数组剩余的元素两端也是小元素时,会进行一次不必要的交换。中元素、大元素交换到子数组右边时 中元素、大元素是无序排列。
1.2)中元素作为分界元素,子数组剩余的元素两端也是中元素时,会进行一次不必要的交换。中元素、大元素交换到子数组右边时 中元素、大元素是无序排列。
1.3)大元素作为分界元素,子数组剩说的元素两端也是大元素时,会进行一次不必要的交换。小元素、中心元交换到子数组左边时 小元素、中元素是无序排列。

转载于:https://www.cnblogs.com/longjin2018/p/9860199.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值