Table of Contents
理解算法的时间和空间复杂性有助于评估其效率。合并排序和快速排序是两种流行的排序算法,其性能特征不同。本文解释了如何计算其复杂性。
合并排序复杂度
合并排序将数组按递归方式分割成二分之一,直到每个子阵列包含一个单一元素。合并过程然后按排序顺序将这些子阵列合并。
合并类的时间复杂性是O(n log n)在最佳,平均,最坏的情况下,因为它始终将数组分割,并高效地合并.
空间复杂度是O(n),因为合并过程中需要临时阵列.
快速排序复杂度
快速排序选择一个枢轴元素,并将数组分割为小于或大于枢轴的子阵列。此过程会递归重复。
平均时间复杂性为O(n log n]],但最糟糕的情况是,如总选择最小或最大元素作为枢轴时,其降解为O(n^2]].
快速排序的空间复杂度一般是O(log n),因为递归堆栈空间,但根据执行情况可以更高.
复杂情况概述
- 合并排序 - 时间: O(n log n) , 空间: O(n)
- 快速排序 - 时间 : [[FLT: 0]] 使用O(n) log n ,最差的O(n^2],空格 : O(log n)