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;
        }
    
    }
  • 相关阅读:
    visual studio 2010 在使用带namespace友元模板函数声明时的bug
    Windows同步对象Event和Linux的条件变量
    从密码学角度看TX常用的TEA加密算法
    SHA1和MD5算法详解和源码
    java 运行机制和环境搭建学习 java 归纳(1)
    循环结构学习 java 归纳(3)
    数组学习 java 归纳(4)
    条件选择结构学习 java 归纳(2)
    JavaWeb 参数
    新博客
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/11032374.html
Copyright © 2011-2022 走看看