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

    把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理;交换了以后再和小的那端比,比它小不交换,比他大交换。这样循环往复,一趟排序完成,左边就是比中轴小的,右边就是比中轴大的,然后再用分治法,分别对这两个独立的数组进行排序。

    package com.daqing.test;
    
    public class Sort {
        
        /**
         * 快速排序,对整数型数组o进行
         * @param o
         * @param low
         * @param hight
         */
        public static void quiteSort( int[] o , int low , int hight ){
                  if(low < hight){
                           int povitePosition = adjust(o,low,hight);
                           quiteSort( o , low , povitePosition - 1);
                           quiteSort( o , povitePosition + 1 , hight );
                  }
        }
        /**
         * 进行调整
         * @param o
         * @param low
         * @param hight
         * @return
         */
        private static int adjust( int[] o , int low , int hight ){//选定枢轴为low所对应的值
                  int pivote = o[low];
                  while(low < hight){
                           while(hight > low && compare( pivote , o[hight] ) <= 0 ){// 高位找到比povite大,则符合要求,继续寻找
                                    hight -- ;
                           }
                           o[low] = o[hight] ;
                           while(low < hight && compare( pivote , o[low] ) >= 0){ //低位开始找到比povite小,符合要求,继续寻找
                                    low ++ ;
                           }
                           o[hight] = o[low];
                  }
                  o[low] = pivote ;
                  return low;
        }
       
        /**
         *
         * @param num1 减数
         * @param num2 被减数
         * @return
         */
        private static int compare(int num1, int num2) {
                  return num1 - num2 ;
        }
        /**
         * @param args
         */
        public static void main(String[] args) {
                  int[] i = {26,53,48,15,13,46,32,15,0};
                  quiteSort(i, 0, i.length-1);
                  for(int ii:i){
                           System.out.print(ii+" ");
                  }
        }
    }
  • 相关阅读:
    C#与服务器建立会话,获取SessionId(临时cookie值)
    c# 登录带验证码网站
    ASP读取CSV文件 并添加到数据库
    淘宝开放平台正式环境获取数据(二)
    DragDrop 注册失败的解决方法 转
    c# 获取网站验证码图片
    淘宝开放平台.NET版SDK 测试类
    淘宝开放平台正式环境获取数据(一)
    sqlhelper源码
    博客园看到的socket基本原理
  • 原文地址:https://www.cnblogs.com/lxq0309/p/3666629.html
Copyright © 2011-2022 走看看