首页 > 代码库 > 快速排序代码备份

快速排序代码备份

快速排序算法:

 

// QuickSort.cpp : 定义控制台应用程序的入口点。//#include<iostream>using namespace std;template <typename T>void QSort(T* a, int n){    if (n <= 1) //记住是小于等于1    {        return;    }    if (n == 2)    {        if (a[0] > a[1])            swap(a[0], a[1]);        return; //记得有return    }    swap(*a, a[n>>1]);    T v = *a;    T* L = a + 1;    T* R = a + n - 1;    while( L < R)    {        while(*L < v && L < R) L++; //记得是小于,要等到>        while(*R > v && R > a) R--; //记得是R--        if ( L < R)            swap(*L, *R);    }    swap(a[0], *R);    QSort(a, R - a); //记得是从a开始    QSort(R + 1, n - 1 - (R - a)); //记得个数的计算方法 总个数减去分界值减去左边的个数}int main(int argc, char* argv[]){    int a[10];    for (int i = 0; i < 10; ++i)        a[i] = 10 - i;    QSort(a, 10);    for (int i = 0; i < 10; ++i)        cout << a[i] << "" ;    cout << endl;    return 0;}

 

快速排序代码备份