数据结构快速排序法

1.快速排序法思想(原理)

       通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序算法时间复杂度为O(NlogN)。

2.原理具体说明

数据结构快速排序法_第1张图片

数据结构快速排序法_第2张图片


3.代码实现

#include
void quicksort(int a[],int left,int right)
{
    int i,j,temp;
    i=left;
    j=right;
    temp=a[left];
    if(left>right)
        return;
    while(i!=j)
    {
        while(a[j]>=temp&&j>i)
            j--;
        if(j>i)
            a[i++]=a[j];
        while(a[i]<=temp&&j>i)
            i++;
        if(j>i)
            a[j--]=a[i];
         
    }
    a[i]=temp;
    quicksort(a,left,i-1);
    quicksort(a,i+1,right);
}
int main()
{
    int a[]={53,12,98,63,18,72,80,46,32,21};
    int i;
    quicksort(a,0,9);
    /*排好序的结果*/
    for(i=0;i<10;i++)
        printf("%4d\n",a[i]);
}


你可能感兴趣的:(数据结构)