快速排序Java代码实现

2022年9月17日11:15:33

快速排序Java代码实现

1. 快速排序原理
(1)定义一个基准元素base(我这里定义的是最左面的元素定位基准元素)
(2)定义两个变量i和j,j先从右向左遍历,找到第一个比base小的数就停止,i再从左向右便利找到第一个比base大的数停止
(3)交换i和j指向的元素
(4)直到i和j指向同一个元素,将这个元素与基准元素交换
递归求解即可
2. 时间复杂度:O(nlogn)
3. 代码实现

publicclassQsort{publicstaticvoidmain(String[] args){int a[]={3,4,11,2,0,9,8,5,7};Quicksort(a,0,a.length-1);for(int i: a){
			System.out.print(i+" ");}}privatestaticvoidQuicksort(int[] a,int left,int right){if(left>right)return;int i=left;int j=right;int base=a[left];while(i!=j){while(a[j]>=base&&i<j)
				j--;while(a[i]<=base&&i<j)
				i++;int temp;
			temp=a[i];
			a[i]=a[j];
			a[j]=temp;}
		a[left]=a[i];
		a[i]=base;Quicksort(a,left,i-1);Quicksort(a,i+1,right);}}
  • 作者:小安同学Y
  • 原文链接:https://blog.csdn.net/m0_48372408/article/details/111415746
    更新时间:2022年9月17日11:15:33 ,共 613 字。