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

    一、快速排序算法(冒泡排序算法的升级版)

    1.1 编写快速排序,记住下面的内容,代码也就游刃有余了!

    (1) 首先确定分界点:分界点设为x,可以取q[left],q[(left+right)>>2],q[right]任意一个,建议就取中间值。

    (2) 取完分界点,然后就可以重新调整区间:分为<=x,>=x 两个左右区间,保证左边的数都小于等于x,右边的数都大于等于x。

    (3) 最后一步就是递归处理左右两端。

    二、快速排序算法的核心

    2.1 分治

    三、快速排序算法的代码模板

    void quick_sort(int q[], int l, int r)
    {
        if (l >= r) return;
        int i = l - 1, j = r + 1, x = q[l + r >> 1];//确定分界点
        while (i < j)
        {
            do i ++ ; while (q[i] < x);
            do j -- ; while (q[j] > x);
            if (i < j) swap(q[i], q[j]);
        }//重新调整区间
        quick_sort(q, l, j), quick_sort(q, j + 1, r);//递归处理左右两端
    }
    

    查看更多

  • 相关阅读:
    Leetcode 283. Move Zeroes
    算法总结
    随机森林
    BRICH
    DBSCAN算法
    k-means算法的优缺点以及改进
    soket编程
    手电筒过河
    字符串反转
    URAL 1356. Something Easier(哥德巴赫猜想)
  • 原文地址:https://www.cnblogs.com/lastk/p/12296390.html
Copyright © 2011-2022 走看看