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

    优化前(传统):

     /**
         * 快速排序
         */
        @Test
        public void kuaiSuTest(){
            /**
             * 1、选择一个基点
             * 2、从两边开始向基点遍历,与基点比较,大小位置不对的就互换位置
             * 3、遍历结束排序完成
             */
            sort(data,0,data.length-1);
            System.out.println(Arrays.toString(data));
    
        }
        public static void sort(int[] data,int low,int height){
            int i = low;
            int j = height;
            if (i>j) {
                return;
            }
            int key=data[i];
    
            while (i<j){
                while (i<j&&data[j]>key){
                    j--;
                }
                while (i<j&&data[i]<key){
                    i++;
                }
                if (i<j){
                    int temp = data[i];
                    data[i]=data[j];
                    data[j]=temp;
                }
            }
            sort(data,0,i-1);
            sort(data,i+1,height);
        }

    优化:

    在排序时,如果碰到了相同的元素比较多的时候也就是像{3,2,1,1,1,4,5,2,2,6,2,3}这种,我们判断的时候可以直接把这个元素放在与他相同的附近

  • 相关阅读:
    zabbix:乱码问题
    zabbix--微信报警(未完成)
    ansible-playbook项目(4)
    ansible-playbook(3)
    备份和校验脚本-邮件通知
    rsync
    keepalived
    双机热备
    nginx负载均衡
    LNMP(5)
  • 原文地址:https://www.cnblogs.com/lcxz/p/10252312.html
Copyright © 2011-2022 走看看