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

    原理:选择一个关键值作为基准值,一般选择序列的第一个元素。分区,比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的再对左右区间重复第二步,直到各区间只有一个数
    挖坑填数
    将基准数挖出形成第一个坑由后向前找出比他小的数填入到第一次的坑中,由前向后找出比基准值打的数放入上一步拿出去的地方-重复执行2,3步。
    会做n次二分 一次为logn n次则就是O(nlogn)
    log 二分查找默认的底数为2
    对数 x=log(a)(N) a的x次方等于N

    说一下坑:必须要每一句话都要进行start<end判断,不然就会数值越界异常,可以把所有的start<end都去掉容易理解,后面再加上去.

    public class MainActivity extends AppCompatActivity {
        int[] arr = new int[]{9, 5, 4, 8, 7, 3, 1};
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            int[] array = quickly(arr, 0, arr.length - 1);
            System.out.println(Arrays.toString(array));
        }
    
        public int[] quickly(int[] array, int start, int end) {
    
            if (start<end) {
                int midIndex = getMidIndex(array, start, end);
                quickly(array, 0, midIndex - 1);
                quickly(array, midIndex + 1, end);
            }
            return array;
        }
    
        public int getMidIndex(int[] array, int start, int end) {
            int basic = array[start];
            if (start < end) {
    
                while (array[end] >= basic && start<end) {
                    end--;
                }
                if (start < end) {
                    array[start] = array[end];
                    start++;
                }
                while (array[start] < basic && start<end) {
                    start++;
                }
                if (start < end) {
                    array[end] = array[start];
                    end--;
                }
    
    
            }
            array[start] = basic;
            return start;
        }
    
    }
  • 相关阅读:
    MianShiTi
    C#多线程解决界面卡死问题的完美解决方案
    C#中的WebBrowser控件的使用
    解决Linq第一次调用存储过程时速度慢的问题
    AX 的 NumberSequences
    Ax 从一个form关闭另外一个form,AX全局变量
    查询数据库后台Block 的Sql存储过程
    Dynamic AX 4.0 用户组权限SecurityKey
    20160408 从软件工程的3大文档开始说起
    获取AX的窗口所有控件的lableID及内容
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/11032374.html
Copyright © 2011-2022 走看看