void quick_sort(int InArray[], int top, int end, int indexkey)
{
int itop = top;
int iend = end;
int iindexkey = indexkey;
int temp = 0;
if(top == end)
{
return;
}
while (itop < iend)
{
while(itop < iend && InArray[iend] >= InArray[iindexkey])
iend--;
temp = InArray[iend];
InArray[iend] = InArray[iindexkey];
InArray[iindexkey] = temp;
iindexkey = iend;
while(itop < iend && InArray[itop] <= InArray[iindexkey])
itop++;
temp = InArray[itop];
InArray[itop] = InArray[iindexkey];
InArray[iindexkey] = temp;
iindexkey = itop;
}
if(iindexkey == top)
{
quick_sort(InArray, iindexkey+1, end, iindexkey+1);
}
else if(iindexkey == end)
{
quick_sort(InArray, top, iindexkey-1, top);
}
else
{
quick_sort(InArray, top, iindexkey-1, top);
quick_sort(InArray, iindexkey+1, end, iindexkey+1);
}
}