int partition(int list[], int size)
{
int k;
int mid = size/2;
int index = 0;
swap(&list[0], &list[mid]);
for (k = 1; k < size; k++)
{
if (list[k] < list[0])
{
index++;
swap(&list[index], &list[k]);
}
}
swap(&list[0], &list[index]);
return index;
}