快速排序

来源:互联网 发布:上海模型店淘宝地址 编辑:程序博客网 时间:2024/04/28 06:27
package com.tony.sort;/** * 快速排序 */public class QuickSort {    private static void quickSort(int[] table, int low, int high) {        if (low < high) {            int i = low;            int j = high;            int vot = table[i];            while (i != j) { // 一趟排序                while (i < j && vot <= table[j]) { // 从后向前寻找小于基准值的数                    j--;                }                if (i < j) {                    table[i] = table[j];  //小于基准值的数移动到i位置                    i++;                }                while (i < j && table[i] < vot) { //从前向后寻找较大值                    i++;                }                if (i < j) {                      table[j] = table[i];  //较大元素向后移动到j位置                    j--;                }            }            table[i] = vot; // 基准值的最终位置            quickSort(table, low, j - 1); // 前端子序列再排序            quickSort(table, i + 1, high); // 后端子序列再排序        }    }    public static void main(String[] args) {        int[] table = new int[]{38,26,97,19,66,1,5,49};        quickSort(table,0,table.length-1);        print(table);    }    private static void print(int[] table) {        for(int t : table){            System.out.print(t+",");        }    }}
0 0