快排这里不再赘述 主要是时间复杂度 先写一下快排代码

void quick_sort(int a[], int start, int end) {

    int val = a[start];

    int s = start;

    int e = end;

    while(s < e) {

        while(s < e && a[e] > val) e --;

        if(s < e) a[e --] = a[s];

        //一样

    }

    //赋初值

    //递归

}


最好情况,每次哨兵在中间相遇,nlgn

快排及时间复杂度简单证明

最坏情况,每次哨兵在第一个地方或者最后一个地方相遇,出现在有序数列中

快排及时间复杂度简单证明

平均情况,用1:9来举例,在1/10处,为lgn,在9/10处,为lg10/9n,总体趋向于nlgn

快排及时间复杂度简单证明

平均情况中好坏交替情况,坏情况趋向于被同化成好情况

快排及时间复杂度简单证明

相关文章:

  • 2021-06-06
  • 2021-12-04
  • 2022-01-14
  • 2021-11-23
  • 2022-02-20
  • 2022-02-10
  • 2021-11-20
  • 2022-01-07
猜你喜欢
  • 2021-08-27
  • 2021-05-22
  • 2021-09-01
  • 2022-01-13
  • 2022-12-23
相关资源
相似解决方案