Java实现快速排序算法

本文深入讲解了快速排序算法的原理及其实现。快速排序是一种高效的排序算法,通过一趟排序将待排记录分隔成独立的两部分,其中一部分的所有记录都比另一部分的所有记录小,然后分别对这两部分继续进行快速排序,最终达到整个序列有序。

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

原作者:老铁123   
出处:https://blog.youkuaiyun.com/qewgd/article/details/85949755
本文归作者【老铁123】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

快速排序
对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。

代码实现

public class QuickSortV2 {
	public static void main(String[] args) {
		int[] arr = { 65, 58, 95, 10, 57, 62, 13, 106, 78, 23, 85 };
		System.out.println("排序前:" + Arrays.toString(arr));
		quickSort(arr, 0, arr.length - 1);
		System.out.println("排序后:" + Arrays.toString(arr));
	}

	public static void quickSort(int[] arr, int left, int right) {
		int mid= 0;
		if (left < right) {
			mid= getMid(arr, left, right);
			quickSort(arr, left, mid- 1);
			quickSort(arr, mid+ 1, right);
		}
	}

	private static int getMid(int[] arr, int left, int right) {
		int key = arr[left];
		while (left < right) {
			while (left < right && arr[right] >= key) {
				right--;
			}
			arr[left] = arr[right];
			while (left < right && arr[left] <= key) {
				left++;
			}
			arr[right] = arr[left];
		}
		arr[left] = key;
		return left;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值