首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

好心人来帮小弟我看看这个快速排序

2012-04-06 
好心人来帮我看看这个快速排序C/C++ code#include iostreamusing namespace std//********************

好心人来帮我看看这个快速排序

C/C++ code
#include <iostream>using namespace std;//************************//**找基准数//************************template <class T>size_t Pivos(T array[], size_t left, size_t right){    T pivos = array[left];    while (left < right)    {        while (left < right && array[right] >= pivos)        {            right--;        }        if (left < right)        {            array[left++] = array[right];        }        while (left < right && array[left] <= pivos)        {            left++;        }        if (left < right)        {            array[right--] = array[left];        }    }    array[left] = pivos;    return left;}//************************//**快速排序//************************template <class T>void QuickSort(T array, size_t left, size_t right){    size_t pivos;    if (left < right)    {        pivos = Pivos(array, left, right);        QuickSort(array, left, pivos - 1);        QuickSort(array, pivos + 1, right);    }}typedef int T;int main(){    T array[] = {5,4,3,2,1};    QuickSort(array, 0, 4);    for (size_t ix = 0; ix <= 4; ++ix)    {        cout << array[ix] << " ";    }    cout << endl;    return 0;}


感觉没有错误啊。。

[解决办法]
C/C++ code
template <class T>void QuickSort(T array, size_t left, size_t right){    size_t pivos;    if (left < right)    {        pivos = Pivos(array, left, right);        if(left>=0 && pivos>left)            QuickSort(array, left, pivos - 1);        if(pivos>=0 && right>pivos)            QuickSort(array, pivos + 1, right);    }} 

热点排行