• 快速排序


        void quick(int[] arr, int left, int right){
            if(left > right){
                return;
            }
            //以基准数为分界限,将比基准线大的都移动到基准数的右边,将比基准数小的都移动到基准数的左边
            //每次找到一对就交换位置,最后确定基准数的位置
            int temp = arr[left], i = left, j = right;
            while(i != j){
                while(i < j && arr[j] >= temp){
                    //找到一个比基准数小的
                    j --;
                }
                while( i < j && arr[i] <= temp){
                    //找到一个比基准数大的
                    i ++;
                }
                if(i < j){
                    //交换比基准数小的,与基准数大的
                    int tmp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tmp;
                }
            }
            //交换基准数的位置
            arr[left] = arr[i];
            arr[i] = temp;
    
            quick(arr, left, i - 1);
            quick(arr, i + 1, right);
        }
        void quick1(int[] arr, int left, int right){
            if(left > right){
                return;
            }
            int temp = arr[left], i = left, j = right;
            while(i != j){
                while(i < j && arr[j] >= temp){
                    //找到一个比基准数大的,将其移动到基准数的右边
                    j --;
                }
                arr[i] = arr[j];
                while( i < j && arr[i] <= temp){
                    //找到一个比基准数小的移动到基准数的左边
                    i ++;
                }
                arr[j] = arr[i];
    
            }
            //交换基准数的位置
            arr[i] = temp;
            
            quick(arr, left, i - 1);
            quick(arr, i + 1, right);
        }
  • 相关阅读:
    如何用tar和gpg创建压缩加密的档案文件
    如何用Virt-rescue拯救虚拟机?
    如何在Linux中使用命令管理已安装的软件包?
    leetcode TOP100 字母异位词分组
    剑指offer 1-5
    XCTF(MISC) 坚持60s
    XCTF(MISC) give_you_flag
    XCTF MISC 如来十三掌
    XCTF(MISC) 图片隐写
    XCTF csaw2013reversing2
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/5453405.html
Copyright © 2020-2023  润新知