快速排序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的主要内容,如果未能解决你的问题,请参考以下文章