排序算法(一)——快速排序法

来源:互联网 发布:nemo软件 编辑:程序博客网 时间:2024/06/05 06:39

1、快速排序法
快速排序的最差时间复杂度和冒泡排序是一样的都是O(N2),
平均时间复杂度为O(NlogN)

   void quickSort(int left,int right){     int i,j,t,temp;     if(left>right)     return;     temp=a[left];   //左边第一个作为基准     i=left;         //i为左哨兵     j=right;        //j为右哨兵     while(i!=j)     {        while(a[j]>temp&i<j)    //先从右边遍历,直到找到小于temp时停下          j--;        while(a[i]<temp&i<j)    //从左边遍历,直到找到大于temp时停下          i++;        if(i<j){               //两者都停下时,交换a[i]和a[j]的值           t=a[i];           a[i]=a[j];           a[j]=t;        }     }     a[left]=a[i];       //当哨兵相遇时交换当前值和基准数     a[i]=temp;     quickSort(left,i-1);     quickSort(i+1,right)   }
0 0
原创粉丝点击