sort.c
void swap(int iList[], int a, int b)
{
int temp;
temp = iList[a];
iList[a] = iList[b];
iList[b] = temp;
}
void quickSort(int iList[],int left, int right)
{
int last;
int i;
if(left < right)
{
swap(iList, left, (left + right) / 2);//left original value is 0, that is wrong!!
last = left;
for(i = left + 1; i <= right; i++)
{
if(iList[i] < iList[left])
{
swap(iList, i, last);//usefull only when iList[i] >= iList[left] has happened
}
}
swap(iList, left, last);
quickSort(iList, left, last - 1);
quickSort(iList, last + 1, right);
}
}
main.c
//a example of quick sort
#include <stdio.h>
int iList[] = {23, 43, 55, 122, 11, 234};
int main(void)
{
void quickSort(int iList[], int left, int right);
int iLength;
int i;
iLength = sizeof(iList) / sizeof(iList[0]);
quickSort(iList, 0, iLength - 1);
for(i = 0; i < iLength; i++)
{
printf(i == iLength - 1 ? "%d\n" : "%d,", iList[i]);
}
return 0;
}