快速排序:
算法实现步骤:
1、先找一个基数(一般将数列第一个数作为基数);
2、将比基数大的数放在这个数右边,小的放在左边;
3、以这个基数的位置划分左右区间,重复第二步,直到每个区间只有一个数。
C语言实现:
void quicksort(int array[],int begin,int end)
{
int i,j,temp;
temp = a[begin];
i = begin;
j = end;
if(i>=j)
{
return;
}
while(i<j)
{
while(array[j]>=temp&&i<j)
j--;
if(i<j)
a[i++] = a[j];
while(array[i]<=temp&&i<j)
i++;
if(i<j)
a[j--] = a[i];
}
a[i] = temp;
quicksort(array,i+1,end);
quicksort(array,begin,i-1);
}
viod main()
{
int array[5] = {3,1,4,5,2};
quicksort(array,0,4);
for(i = 0;i<5;i++)
printf(" %d \n",array[i]);
}