快速排序算法C语言

快速排序是在实践中最快的已知排序算法,它的平均时间是O(NlogN),最坏情形为O(N2),但快速排序是一种不稳定的排序算法。

C语言程序如下:

typedef int ElementType;  //对类型变量起别名,提高程序可移植性、可读性
  
void QuickSort(ElementType A[],int left,int right)  
{  
    int i,j;  
    ElementType pivot;  
    i=left;  
    j=right;  
    pivot=A[left];  
    if(left>=right) return ;  
    while(i!=j)  
    {      
        while(A[j]>=pivot && j>i)  
            j--;  
        if(j>i)  
            A[i++]=A[j];  
        while(A[j]<=pivot && j>i)  
            i++;  
        if(j>i)  
            A[j--]=A[i];  
    }  
    A[i]=pivot;  
    QuickSort(A,left,i-1);  
    QuickSort(A,i+1,right);  
}

   

原文地址:https://www.cnblogs.com/liyanfasd/p/2467798.html