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

    package QuickSort;
    
    import MergeSort.MegerSort;
    import chooseSort.Example;
    
    /**
     * 快速排序
     * 思想:分而治之;
     * 不断地以第一个元素为基准对当前数组进行分割,直到子数组只有一个元素
     */
    public class QuickSort extends Example
    {
        public void sort(Comparable[] a, int lo,int hi) {
            if (lo>=hi) return;
            int j = partition(a,lo,hi); //原地切分
            sort(a,lo,j-1);
            sort(a,j+1,hi);
        }
    
        private int partition(Comparable[] a, int lo, int hi) {
            int i = lo;
            int j = hi+1; //note
            Comparable v = a[lo];//基准数
            while (true){
                //i指向数组范围内比基准数大的值,或者数组最后一个元素
                //j指向数组范围内比基准数小的值,或者数组第一个元素
                while (less(a[++i],v)) if(i==hi) break;
                while (less(v,a[--j])) if(j==lo) break;
                //判断
                if(i>=j) break;
                //交换
                exch(a,i,j);
            }
            exch(a,lo,j);
            return j;
        }
        /**
         * 测试用例
         * @param args
         */
        public static void main(String[] args) {
            Integer[] a = new Integer[]{1,6,34,2,5,3,4,45,6,22};
            QuickSort sort = new QuickSort();
    //        sort.merge(a,0,2,a.length-1);
            sort.sort(a,0,a.length-1);
            show(a);
            System.out.println(isSorted(a));
        }
    }
  • 相关阅读:
    IE9的css hack
    ie6 插入图片img png24 阴影
    clear:both; overflow:hidden
    ie6 背景图片 png24 阴影
    html 页面定位
    IE无法显示PNG
    行内元素 & 块元素
    div+css布局时的浏览器兼容问题
    删除源代码的管理信息(VSS)
    string path;
  • 原文地址:https://www.cnblogs.com/youzoulalala/p/11058911.html
Copyright © 2011-2022 走看看