算法导论-第7章-快速排序算法

来源:互联网 发布:ug数控车床编程 编辑:程序博客网 时间:2024/06/06 14:05
#include<stdio.h>int  partition(int A[],int p,int r){   int x=0;int i=0;   int temp=0;   int temp1=0;   int j=0;   int k=0;   x=A[r];   i=p-1;     printf("before A[r] is %d\n",A[r]);   for(j=p;j<=r-1;j++){if(A[j]<=x){  i++;  temp=A[i];                  A[i]=A[j];  A[j]=temp; }       }    temp1=A[i+1];    A[i+1]=A[r];    A[r]=temp1;    printf("after A[r] is %d\n",A[r]);       for(k=0;k<8;k++)printf(" numbers[%d] is %d\n",k,A[k]);    printf("\n");return i+1;}void quicksort(int numbers[], int p,int r){     int q=0;    if (p<r){q=partition(numbers,p,r);        quicksort(numbers,p,q-1);        quicksort(numbers,q+1,r);}}int main(void){int  numbers[]={5,2,4,6,1,3,22,36};int i=0;        quicksort(numbers,0,7);        for(i=0;i<8;i++)printf("%d     ",numbers[i]);       return 0;}
快速排序:最坏o(n²)  最好o(nlgn) 平均o(nlgn)
0 0
原创粉丝点击