快速排序:
https://b23.tv/BV1at411T75o
package _2016;
import java.util.Scanner;
import java.util.Stack;
public class cg {
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
}
f(a,0,n-1);
for(int i=0;i<n;i++)
{
System.out.print(a[i]+"\n");
}
}
private static void f(int[] a,int l, int h) {
if(l>=h)
return;
int low=l;
int high=h;
int cen=a[l];//cen类似标杆
while(low<high)
{
while(low<high&&a[high]>=cen)
high--;
if(a[high]<cen)//如果右边小于cen值把这个数移到左边
{
a[low]=a[high];
}
while(low<high&&a[low]<=cen)
low++;
if(a[low]>cen)//如果左边大于cen值把这个数移到右边
{
a[high]=a[low];
}
if(low>=high)//把cen值放在中间
{
a[low]=cen;
}
}
f(a,l,low-1);//以此类推对左右继续
f(a,low+1,h);
}
}