快速排序
最近看标准库的 stdlib库 的 qsort 函数(快速排序算法),看的不太懂, 所以 上网来看看快速排序的算法。以下是我看过之后自己写的一个小例子。
推荐一个博客网站,里面内容通俗易懂,配图很萌。算法博客
void qSortArray(int * a,int left,int right){
if (left >= right)
{
return;
}
int base = a[left];
int i = left;
int j = right;
while (i != j )
{
while (a[j] >= base && j > i)
{
j--;
}
while (a[i] <= base && j > i)
{
i ++;
}
if (j > i)
{
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
a[left] = a[i];
a[i] = base;
qSortArray(a,left,i-1);
qSortArray(a,i+1,right);
}
int _tmain(int argc, _TCHAR* argv[])
{
int a [] = {1,43,234,2,543,231,2342,99,234,543};
qSortArray(a,0,9);
for (int i = 0; i <= 9; i++)
{
printf("%d\n",*(a+i));
}
}