一、简介
快速排序是由东尼·霍尔所发明的排序算法。事实上,排序算法通常明显比其他算法更快,因为它的内部循环可以在大部分框架上很有效地被实现出来。
二、过程
1.从序列中挑选出一个元素,作为基准。
2.把所有比基准小的元素放在基准的前面,把所有比基准大的元素放在基准的后面(相同的数放到任一边),这个过程称为分区。
3.对每个分区递归地进行步骤1和步骤2,递归的结束条件是序列的大小是0。
三、代码
int a[maxn];
void qsort(int left,int right)
{
if(left>right)
{
return;
}
int i=left,j=right,temp=a[left];
while(i<j)
{
while(i<j&&a[j]>=temp)
{
j--;
}
while(i<j&&a[i]<=temp)
{
i++;
}
if(i<j)
{
swap(a[i],a[j]);
}
}
swap(a[left],a[i]);
qsort(left,i-1);
qsort(i+1,right);
}