• 快速排序


    public class TestOrder {

    static int[] s = {11 ,3 ,51, 33, 66, 77, 22 ,6};


    public static void main(String[] args) {
    quitSort(s, 0 , 7);
    for (int s :s){
    System.out.println(s);
    }
    }


    /**
    * @Auther sunpz
    * @DateTime 2019-10-30 17:24
    * @Description: 一次排序
    * @Param s 要排序数组
     * @Param l 左边下标
     * @Param r 右边下标
    * @Return: int
    */
    private static int orders(int[] s, int l, int r){
    int i = l, j = r;
    // 取出的中间值
    int x = s[i];

    while (i < j){
    //从右边找到符合要求的-- 小于中间值的
    while (i < j && (x <= s[j])){
    j--;
    }
    //符合条件的放到取 中间值的位置
    if(i < j){
    s[i] = s[j];
    }
    //从左边找到符合要求的-- 大于中间值的
    while (i < j && s[i] <= x){
    i ++;
    }
    //放到填补中间值的位置
    if(i < j){
    s[j] = s[i];
    }
    }
    //最终肯定从x的地方空出一个,将中间值放进去
    s[i] = x;
    return i;
    }

    /**
    * @Auther sunpz
    * @DateTime 2019-10-30 17:59
    * @Description: 分治
    * @Param s
     * @Param l
     * @Param r
    * @Return: void
    */
    private static void quitSort(int s[], int l, int r){
    if(l < r){
    int i = orders(s, l ,r);
    quitSort(s, l, i - 1);
    quitSort(s, i + 1, r);
    }
    }

    }

      

  • 相关阅读:
    修改手机端radio 样式
    css ul li 左对齐,换行
    8- 类
    virtualbox虚拟机上网方式
    HTTP请求头详解
    出差总结-2017-11-24
    Some characters cannot be mapped using "GBK" ...
    tortoisesvn与eclipse-svn的删除操作区别
    sql
    setInterval方法, clearInterval
  • 原文地址:https://www.cnblogs.com/mlfz/p/11766536.html
Copyright © 2020-2023  润新知