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

        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);
        }
  • 相关阅读:
    oracle视图总结(转)
    tomcat web.xml 配置
    绑定命令的具体应用
    oracle数据导入的常用命令
    hibernate学习笔记6--Criteria查询方式、完整小练习(开发步骤)
    Github常见错误
    排序函数中比较函数cmp的理解
    Hdu 4143
    Wireshark 基本使用方法
    Valgrind 初次接触
  • 原文地址:https://www.cnblogs.com/xiaoxian1369/p/5453405.html
Copyright © 2011-2022 走看看