zoukankan      html  css  js  c++  java
  • 算法-快速排序

    package com.czp.stu;
    
    import java.util.Arrays;
    
    public class Algorithm {
        public static void main(String[] args) {
            int[] arr = { 1, 89, -1, 156, 0, 96, 78,1500,23,-1569 };
            quickSort(arr);
            System.out.println(Arrays.toString(arr));
        }
    
        public static void quickSort(int[] arr) {
            if (arr == null)
                return;
            quickSort(arr, 0, arr.length - 1);
        }
    
        private static void quickSort(int[] arr, int left, int right) {
            if (left < right) {
                int keyPostion = partition(arr, left, right);
                quickSort(arr, left, keyPostion - 1);
                quickSort(arr, keyPostion + 1, right);
            }
        }
    
        /**
         * 取第一个为基数,先从右往左扫描,直至找到一个比基数小的数,
         * 记录该位置j 自左往右扫描,直到找到比基数大的数,
         * 记录位置i,如果此时i<j,则交换
         * 最后把第一个元素和基数交换
         * 
         * @param arr
         * @param left
         * @param right
         * @return
         */
        private static int partition(int[] arr, int left, int right) {
            int j = right;
            int i = left;
            int pivot = arr[left];
            while (i < j) {
                while (i < j && arr[j] >= pivot)
                    j--;
                while (i < j && arr[i] <= pivot)
                    i++;
                if (i < j) {
                    int tmp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = tmp;
                    i++;
                    j--;
                }
            }
            arr[left] = arr[i];
            arr[i] = pivot;
            return i;
        }
    }
  • 相关阅读:
    activiti eclipse 插件安装
    mysql 改编码
    ubuntu vim 中文乱码
    mac 打开 原生 ntfs 读写
    ubuntu 防止 ssh 超时
    java http
    UITabBarController的一些基础设置
    [转]mac 10.9.4下配置apache
    数组的排序及筛选
    一个UICollectionView自定义layout的实现
  • 原文地址:https://www.cnblogs.com/czpblog/p/3669895.html
Copyright © 2011-2022 走看看