zoukankan      html  css  js  c++  java
  • 【java数据结构】快速排序

    package quicklySort;
    
    public class QuicklySort {
        /**
         * 获取枢纽下标
         * @param arr
         * @param left
         * @param right
         * @return
         */
        private static int getStart(int arr[],int left,int right) {
            int temp = arr[left];//选一个值作为中间值作为枢纽
            while(left<right) {//从右向左找比temp小的
                while(arr[right] >= temp && left < right) {
                    right--;
                }
                if(left<right) {
                    arr[left] = arr[right];//将比temp小的放在低端
                    left++;
                }
                while(arr[left] <= temp && left < right) {//从左向右找比temp大的
                    left++;
                }
                if(left<right) {
                    arr[right] = arr[left];//将比temp大的放在高端
                    right--;
                }
            }
            arr[left] = temp;//当left = right时,将中间值放下    
            return left;//返回枢纽下标
        }
        /**
         * 快速排序
         * @param arr
         * 待排序数组
         * @param left
         * 起点
         * @param right
         * 终点
         */
        public static void quickSort(int[] arr,int left,int right) {
            if(left < right) {
                int s = getStart(arr,left,right);
                quickSort(arr, left, s-1);
                quickSort(arr, s+1, right);
            }
        }
        /**
         * 快速排序
         * @param arr
         * 待排序数组
         */
        public static void quickSort(int[] arr) {
            int left = 0;
            int right = arr.length-1;
            if(left < right) {
                int s = getStart(arr,left,right);
                quickSort(arr, left, s-1);
                quickSort(arr, s+1, right);
            }
        }
    }
    
  • 相关阅读:
    MySQL(数据库)
    移动端兼容
    Vue常用指令
    JS浮点运算精度问题
    ES11新增的9个新特性
    后端要采用ArrayBuffer上传文件
    重磅来袭 Vue 3.0 One Piece 正式发布
    Vue 事件的高级使用方法
    浏览器的回流与重绘(Reflow&Repaint)
    微前端介绍
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286793.html
Copyright © 2011-2022 走看看