快速排序算法

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

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);//递归处理左右两端
}
posted @ 2020-02-11 21:05  界内嘻哈  阅读(...)  评论(...编辑  收藏