void QSort(int a[], int l, int r)
{
int left, right, mid;
if(l >= r) return;
left =l; right = r;
mid = a[(l + r) / 2];
while(left <= right)
{
while(a[left] < mid) left++;
while(a[right > mid) right--;
if(left <= right)
{
swap(a[left], a[right]);
left++; right--;
}
}
QSort(a, l, right);
QSort(a, left, r);
}
时间复杂性:
最好情况(每次都平分左右):O(nlogn)
最坏情况(每次都只有一个元素被分出):O(n ^ 2)
稳定性:不稳定