快速排序QuickSort

Posted zkfopen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序QuickSort相关的知识,希望对你有一定的参考价值。

挖坑填数-快速排序

1. left = L,right = R;将基准数挖出形成第一个坑s[left];

2. right --; 由后向前找比它小的数,找到后挖出此数填前一个坑s[left]中。

3. left ++; 由前向后找比它大的数,找到后挖出此数填前一个坑s[right]中。

4. 重复进行(2)(3),直到left == right,将基准数填入s[left]中。

 

源码如下:

#include <iostream>
#include <vector>

using namespace std;

void quickSort(int s[], int l, int r)
{
    if(l < r)
    {
        int left = l, right = r;
        int val = s[left];

        while(left < right)
        {
            while(left < right && s[right] >= val)
                right--;
            if(left < right)
                s[left++] = s[right];

            while(left < right && s[left] < val)
                left++;
            if(left < right)
                s[right--] = s[left];
        }

        s[left] = val;
        quickSort(s, l, left - 1);
        quickSort(s, left + 1, r);
    }
}

int main()
{
    const int len = 3;
    int s[len] = {72, 6, 57};
    int l = 0, r = len  -1;

    quickSort(s, l, r);

    for(int i = 0; i <= r; i++)
    {
        printf("%d	", s[i]);
    }

    return 0;
}

 

 

 

 

以上是关于快速排序QuickSort的主要内容,如果未能解决你的问题,请参考以下文章

快速排序(QuickSort)的Javascript实现

快速排序法QuickSort

快速排序

快速排序--quicksort

小白初识 - 快速排序(QuickSort)

js算法-快速排序(Quicksort)