快速排序——复习

来源:互联网 发布:vb页面跳转 编辑:程序博客网 时间:2024/06/06 16:06
public class Solution {    public void quickSort(int num[], int first, int last) {        if(!(first<last)) return;        int combition = divideTwoPart(num, first, last);        System.out.println(getClass().getName() + " combition " + combition);        quickSort(num, first, combition);        quickSort(num, combition + 1, last);    }    public int divideTwoPart(int num[], int first, int last) {        int k = first;        while (first < last) {            System.out.println(first + " " + last);            for( ; last>first; --last) {                if(num[last] < num[k]) {                    break;                }            }            //System.out.println(num[k] + "  " + num[last]);            swap(num, k, last);            k = last;            for(; first< last; ++first){                if(num[first] > num[k]){                    break;                }            }            swap(num, k, first);            k = first;        }        return k;    }    public void swap(int num[] , int a, int b) {        int temp = num[a];        num[a] = num[b];        num[b] = temp;    }    public static void main(String[] args) {        Solution solution = new Solution();        int num[] = {10, 9,8, 7, 6, 5, 4, 3,2, 1, 0};        solution.quickSort(num, 0, 10);        for(int i : num) {            System.out.print(i + " ");        }    }}
原创粉丝点击