C++快排程序

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:23:03
求最完整并且正确的快速排序的程序(C++).

#include <iostream>
using namespace std;

int Partition(int *pArray, int Begin, int End)
{
int iKey = pArray[Begin];

while(1)
{
while (pArray[End] >= iKey)///////// = 1
End--;

pArray[Begin] = pArray[End]; /////// 2

while (pArray[Begin] < iKey)
Begin++;

if (Begin <= End)
{
int iTmp = pArray[Begin];
pArray[Begin] = pArray[End];
pArray[End] = iTmp;
}
else
{
pArray[--Begin] = iKey; //// 3
return Begin;
}
}
}

void QuickSort(int *pArray, int iBegin, int iEnd)
{
if (iBegin < iEnd)
{
int i = Partition(pArray, iBegin, iEnd);
QuickSort(pArray, iBegin, i);
QuickSort(pArray, i+1, iEnd);
}
}

int main()
{
int a[] = {2, 5, 6, 3, 1};
QuickSort(a, 0, 4);
for (int i=0; i<5; i++)
{