qsort快速排序的實現

#include <stdio.h>
int a[100];
void prt(int n)
{
    int i;
    for(i=1;i<=n;i++)
      printf( "%d ",a[i]);
}
void quicksort( int a[],int l,int h)
{
   int j ,i,key;
   if (l>=h) return ;
   i=l;j=h;key=a[i];
   while(i<j)
   {
        while(i<j&&a[j]>key)j--;
        if (i<j) a[i++]=a[j];
        while (i<j&&a[i]<key)i++;
        if (i<j) a[j--]=a[i];
   }
    a[i]=key;
    if (l<i-1)
        quicksort(a,l,i-1);
    if (i+1<h)
        quicksort(a,i+1,h);
}
int main()
{
    int i,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
      scanf( "%d",&a[i]);
    quicksort(a,0,n);
    prt(n);
    scanf("%d",&a[i]);
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章