码迷,mamicode.com
首页 > 编程语言 > 详细

快排_Java

时间:2020-03-09 16:17:02      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:标准   pac   左移   for   就是   main   pack   oid   直接   

快排的原则就是选一个标准,然后每一个数据和这个标准对比,比这个标准大的放在左边,比这个标准小的放在右边。

看代码:

package com.logan.Algo;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int [] array = {9,1,7,3,6,2,10,4};
        int n = array.length;
        QuickSort(array, 0, n-1);
        for(int i=0;i<n;i++) {
            System.out.println(array[i]);
        }
        

    }
    
    private static void QuickSort(int[] num, int left, int right) {
        // 如果left=right,即数组中只剩一个元素时,直接返回
        if(left>=right) {
            return;
        }
        // 设置最左边的元素为基准值
        int key = num[left];
        //数组中比key小的放在左边,比key大的放在右边
        int i = left;
        int j = right;
        while(i<j) {
            //j向左移动,直到碰到比key小的数
            while(num[j]>=key && i<j) {
                j--;
            }
            //i向右移动,直到碰到比key大的数
            while(num[i]<=key && i<j) {
                i++;
            }
            //i和j指向的元素交换
            if(i<j) {
                int temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
        num[left] = num[i];
        num[i] = key;
        QuickSort(num, left, i-1);
        QuickSort(num, i+1, right);
    }

}

 

快排_Java

标签:标准   pac   左移   for   就是   main   pack   oid   直接   

原文地址:https://www.cnblogs.com/LoganChen/p/12449277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!