快排

本文详细介绍了一种高效的排序算法——快速排序。通过一个具体的例子,即对关键字序列为(51,22,83,46,75,18,68,30)的数组进行排序,展示了快速排序的第一趟排序过程。排序结果为[30,22,18,46,51,75,68,83]。文章还提供了Java语言实现的快速排序代码,帮助读者更好地理解和掌握快速排序算法。

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

已知关键字序列为(51,22,83,46,75,18,68,30),进行快速排序,第一趟按关键码字51进行,完成后的序列为->

30,22,18,46,51,75,68,83

百度快排

java实现:

import java.util.Arrays;
/**
 * 快排
 * @author Administrator
 * mylist=[51,22,83,46,75,18,68,30]
 *第一次排序后结果:[30, 22, 18, 46, 51, 75, 68, 83]
 */
public class QuickSort {
	public static void main(String[] args) {
		int[] list = {51,22,83,46,75,18,68,30};
		int start = 0;
		int end = list.length-1;
		quickSort(list,start,end);

		System.out.println(Arrays.toString(list));
	}

	private static void quickSort(int[] list,int start,int end) {
		if(end <= start){
			return;
		}
		int i = start;
		int j = end;
		int key = list[i];
		while(i < j){
			while(list[j] >= key && i <j){
				j--;
			}
			swap(list,i,j);
			while(list[i] <= key && i < j){
				i++;
			}
			swap(list, i, j);
		}
		quickSort(list, start, i-1);
		quickSort(list, j+1, end);
		
	}

	private static void swap(int[] list, int i, int j) {
		int temp = list[j];
		list[j] = list[i];
		list[i] = temp;
	}
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值