算法(1)-快速排序

74 阅读1分钟

快速排序(Quicksort)是一种高效的排序算法,通常使用分治法(Divide and Conquer)来排序数组。以下是一个用 Java 实现的快速排序算法的示例:

`

public class QuickSort
{
    public static void main(String[] args) {
        int[] a = { 12,20,5,16,15,30,45,23,9};
        int start = 0;
        int end = a.length -1;
        sort(a,start,end);
        for (int i=0;i<a.length;i++) {
         System.out.print(" "+a[i]);
        }
    }
    public static void sort(int[] a,int low,int high) {
        int start =  low;
        int end = high;
        int key = a[low];
        while(end>start) {
            while(end>start && a[end]>=key) {
                end--;
            }
            if(a[end]<=key) {
                int temp = a[end];
                a[end] = a[start];
                a[start] = temp;
            }
            while(end>start && a[start] <=key) {
                start++;
            }
            if(a[start]>=key) {
                int temp = a[start];
                a[start] = a[end];
                a[end] = temp;
            }
        }
        if(start>low) sort(a,low,start-1);
        if(end<high) sort(a,end+1,high);
    }
}

`