快速排序算法

本文详细介绍了快速排序算法的实现过程,包括选取基准值、分区和递归操作。同时,提供了完整的Java代码示例。此外,还演示了冒泡排序的基本步骤,通过两层循环实现元素的有序排列。这两个经典排序算法在理解数据结构和算法优化方面具有重要意义。
摘要由CSDN通过智能技术生成

* 快速排序算法 {6,9,3,4,2,1,7,5}
1、 找一个作为比较的基准值任取 , 我们这边取第一个
2、循环遍历,占坑,进行分区 将第一个值放中间 左边放小于他的数,右边放大于他的数 区分开

3、继续分别对左右两边的数组重复上述操作,直到遍历完成排序结束

/**
*
* 快速排序算法 {6,9,3,4,2,1,7,5}
*
* 找一个作为比较的基准值任取 , 我们这边取第一个
* 进行分区 将第一个值放中间 左边放小于他的数,右边放大于他的数 区分开来
* 继续分别对左右两边的数组重复上述操作,直到遍历完成排序结束
* @params arrys 入参待排序数组
* @params low 低位
* @params hight 高位
* @return arrys 排序后的结果
*/	
public void quickSort (int[] array, int low, int hight) {

	if(array.length == 0){
		return;
	}
	//递归跳出位置
	if(hight >= low){
		return;
	}
	int pos = low;
	// 根据起始值分区 左边小于自己右边大于自己
	pos = partition(array, low, hight);
	// 左边的继续递归区分
    quickSort(array, low, pos - 1);
	// 右边的继续递归区分
	quickSort(array, pos + 1, hight);

}
/**
*
*
* @params arrys 入参待排序数组
* @params low 低位
* @params hight 高位
*
*/
public int partition (int[] array, int low, int hight) {
	
	// 取第一位作为空位 占坑
	int posVal = array[low];
	
	while(hight > low){
		// 从高位开始遍历 ,发现大于自己的继续遍历, 直到小于自己的退出 将该值赋给低位 这时高位留空
		while(hight > low && array[hight] >= posVal) {
			hight--;
		}
		// 这时高为变为空位 要从低位开始遍历
		if(hight > low){
			array[low] = array[hight];
			low++;
		}
		// 从低位开始遍历 发现小于自己的继续遍历, 大于自己的与之前留空的高位交换 ,低位留空
		while(hight >low && array[low] <= posVal){
			low++;
		}
		//  大于自己的与之前留空的高位交换 ,低位留空
		if(hight > low){
			array[hight] = array[low];
			hight--;
		}
	}
	//补上之前寄存的位置
	array[hight] = posVal;
	return hight;
}	



/**
 *
 * 冒泡排序
 * @params 传入数组
 */
public static void main(String[] args) {
	int[] arrs = {10, 2, 8, 3, 9, 7, 6};
	int len = arrs.length;
	int temp ;
	for (int i = 0; i < len; i++) {
		for (int j = 0; j < len-1-i; j++) {
			if(arrs[j] < arrs[j + 1]){
				// 交换两个数
				temp = arrs[j];
				arrs[j] = arrs[j + 1];
				arrs[j + 1] = temp;
			}
		}
	}
	System.out.println(Arrays.toString(arrs));
}
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值