温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中快速排序的算法是什么

发布时间:2020-10-26 10:23:11 来源:亿速云 阅读:177 作者:小新 栏目:编程语言

这篇文章主要介绍了Java中快速排序的算法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

快速排序的原理

快速排序是对冒泡排序的一种改进,冒泡排序是通过一个个比较,从而将小的值放在一端,而大的值放在另外一端,从而达到排序的目的。

而快速排序,是先选定一个临界值,将比这临界值小的值放在一端,而比临界值大的值放在另外一端。重复上一段方法,可以把已经通过临界值分成的两边,再进行两次的分放……将其数据排序好,则整个快速排序就完成了。

快速排序的算法

核心算法:

//QuickSort while(i < j) {	while(num[j] > tmp && j > i)	--j;	while(num[i] <= tmp && i < j) {	++i;	}	if(i < j) {	t = num[i];	num[i] = num[j];	num[j] = t;	}	}	num[left] = num[i];	num[i] = tmp;

下面是完整的QuickSort程序:

//QuickSort.java public class QuickSort {	public static void main(String[] args) {	int[] num = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};	System.out.print("Qriginal array is:");	for (int i = 0; i < num.length; i++) {	System.out.print(num[i] + " ");	}	System.out.println();	//QuickSort	quicksort(num, 0, 9);	System.out.print("Sorted array is:");	for (int i = 0; i < num.length; i++) {	System.out.print(num[i] + " ");	}	System.out.println();	}	public static void quicksort(int[] num, int left, int right) {	if(left > right)	return;	int tmp, i, j, t;	tmp = num[left];	i = left;	j = right;	while(i < j) {	while(num[j] > tmp && j > i)	--j;	while(num[i] <= tmp && i < j) {	++i;	}	if(i < j) {	t = num[i];	num[i] = num[j];	num[j] = t;	}	}	num[left] = num[i];	num[i] = tmp;	quicksort(num, left, i - 1);	quicksort(num, i + 1, right);	} }

程序输出如下图所示:

Qriginal array is:10 9 8 7 6 5 4 3 2 1 Sorted array is:1 2 3 4 5 6 7 8 9 10

快速排序效率相对其他排序方法较高,因此快速排序是现在最好的通用排序方法。QuickSort的时间复杂度为O(nlogn)。

感谢你能够认真阅读完这篇文章,希望小编分享Java中快速排序的算法是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI