快速排序

时间开销:O(logn),空间开销:0(原地分治)

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.println("数组长度:");
        int n=scanner.nextInt();
        int[] q=new int[n];
        System.out.println("数组:");
        for(int i=0;i<n;i++)
        {
            q[i]=scanner.nextInt();
        }
        quickSort(q,0,n-1);
        System.out.print("排序后数组:");
        for(int x:q){
            System.out.print(x+" ");
        }
    }
    static void quickSort(int[] q,int l,int r)
    {
        if(l>=r) return;
        int i=l-1,j=r+1,m=q[l+r>>1];
        while(i<j){
            do i++; while(q[i]<m);
            do j--; while(q[j]>m);
            if(i<j) {
                int tmp=q[i];
                q[i]=q[j];
                q[j]=tmp;
            };
        }
        quickSort(q,l,j);quickSort(q,j+1,r);
    }
}

 

posted @ 2022-12-18 00:34  牛奶艺术鉴赏家  阅读(23)  评论(0)    收藏  举报
Live2D