快排(递归排序模板)

操作

1.找到一个枢纽pivotkey ,对于一个一次操作让枢纽左边的值都小于等于pivotkey,枢纽右边的值都大于等于pivotkey

2.一个排序后将该区间分成两部分继续递归排序,直至不符合l

注意对于默认枢纽为第一个元素,你也可以找到 low-high中人一个当作枢纽然后与第一个进行交换

 

 

#include
#include
#include
#include
#include
#include
#include
#define INF 0x3f3f3f3f
#define N 10010
using namespace std;
template
void Oneqsort(T *arr,int low,int high)
{
    if(low>=high)
     return;
    T pivotkey;
    int l,r;
    l=low;
    r=high;
    pivotkey=arr[l];
    while(l
void QuickSort(T *arr,int la)//数组首地址 数组长度
{
    Oneqsort(arr,0,la-1);
}
template 
void Print(T* arr,int len)
{
    for(int i=0;i

 

你可能感兴趣的:(#,排序算法)