快排(一)
/*****************快排*******************/
int Partition(int *a, int ileft, int iright)
{
int x = a[iright]; //主元
int i = ileft - 1; //小于主元游标
for(int j = ileft; j < iright; j++)
{
if(a[j] <= x) //小于主元
{
i++;
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
a[iright] = a[i+1];
a[i+1] = x;
return i+1;
}
void QuickSort(int *a, int ileft, int iRight) //快排接口
{
if(ileft < iRight)
{
int ipos = Partition(a, ileft, iRight);
QuickSort(a, ileft, ipos - 1);
QuickSort(a, ipos + 1, iRight);
}
}