快速排序算法(java实现)

来源:互联网 发布:淘宝国庆中秋放假通知 编辑:程序博客网 时间:2024/06/04 23:20


在此附上一张快速排序算法的简单易懂图。



package test;import java.util.Arrays;public class QKSortDemo {    public static void sort(int a[], int low, int hight) {        if(low>hight){    return;    }            int basic = a[low]; //取表的第一个数为基准数    int i = low;  //取头坐标为i    int j = hight;//取尾坐标为j        while(i<j){    while(i<j && basic<=a[j]){    j--;    }    if(i<j){    a[i++] = a[j];    }        while(i<j && a[i]<basic){    i++;    }    if(i<j){    a[j--] = a[i];    }    }        a[i] = basic;            sort(a, low, i-1);  //对低子表进行递归排序    sort(a, i+1, hight);//对高子表进行递归排序    }    public static void main(String[] args) {    //定义数组a。并指定数组a的大小为10    int a[] = new int[10];    //随机生成10个数据,并放入数组a中。    for(int i = 0; i<10;i++){    int number = (int) (Math.random()*100);    a[i] = number;    }        //打印排序前数组中数据的顺序    System.out.println("随机数据为:"+Arrays.toString(a));        //排序函数    sort(a, 0, a.length - 1);        //打印通过快速排序后的数组a        System.out.println("排序后结果为: "+Arrays.toString(a));    }}