快速排序:
调用栈,
栈长为
最糟糕情况O(n)
最佳情况O(log n)
完成每层所需时间为O(n)
层数为O(log n)
最糟糕情况下:有O(n)层,整个算法运行时间为O(n)*O(n)
最佳:层数为O(log n),每层需要的时间为O(n)整个算法O(n)*O(log n)
最佳情况也是平均情况。只要你每次都随机地选择一个数组元素作为基准值,快速排序的平均时间就将成为O(n log n)
快速排序:
调用栈,
栈长为
最糟糕情况O(n)
最佳情况O(log n)
完成每层所需时间为O(n)
层数为O(log n)
最糟糕情况下:有O(n)层,整个算法运行时间为O(n)*O(n)
最佳:层数为O(log n),每层需要的时间为O(n)整个算法O(n)*O(log n)
最佳情况也是平均情况。只要你每次都随机地选择一个数组元素作为基准值,快速排序的平均时间就将成为O(n log n)