Partition函数的理解以及Java实现 + 快速排序的多种实现

本文深入探讨Partition函数,结合《算法导论》和其他博客资源,详细讲解了其不同取值策略,并提供了Java实现。同时,文章还涵盖了快速排序的多种实现方式,强调了在处理结束位置时的注意事项,以确保不遗漏元素。随机选取枢纽值可降低时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考了《算法导论》及如下博客: 

http://blog.jobbole.com/105219/ 

https://blog.csdn.net/AA2519556/article/details/77884962 

https://www.cnblogs.com/zuilehongdou/p/6197716.html 

http://haoyuanliu.github.io/2016/12/18/Partition%E7%AE%97%E6%B3%95%E5%89%96%E6%9E%90/ 

https://blog.csdn.net/u013457167/article/details/79749882  (思路理解在这篇文章中汇总)

注:上述博客在考虑end是元素的个数n,留意end对应的元素是否被访问,避免漏掉。 

Pa

package Findwork;

/**
 * @author hadoop
 *针对的是版本1中出现的一些问题,现在进行完善;
 *
 */
public class partitionFun_2 {

	public static void main(String[] args) {
		//int arr[]= {5,9,2,1,4,7,5,8,3,6};
		partitionFun_2  p = new partitionFun_2();
		
		int arr[]=p.randomArr(50, 100);
			
		for(int i=0;i<arr.length;i++) 
		{
			System.out.print(arr[i]+ " ");
		}
		
		p.quickSort(arr, 0, arr.length-1);
		S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值