快排平均复杂度O(nlogn)证明

在这里插入图片描述
然后错位相减:nA(n)-(n-1)A(n-1)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
快速排序(Quick Sort)是一种常用的排序算法,其空间复杂度为O(nlogn)。 快速排序是一种分治策略的排序算法,它基于一个简单的原理:通过选择一个元素作为基准(通常为数组的第一个或最后一个元素),将数组分成两个子数组,一个子数组的所有元素都小于等于基准,另一个子数组的所有元素都大于等于基准。然后对两个子数组递归地进行快速排序,最后合并得到有序数组。 在快速排序的过程中,需要额外的空间用于存储递归调用时产生的栈帧。具体来说,每次划分数组时,都需要调用一个递归函数来对划分后的两个子数组进行排序。递归函数的调用会导致栈帧的产生,而栈帧的大小取决于递归深度。在最坏情况下,即数组已经有序的情况下,递归的深度为n,因此需要O(n)的额外空间。 而在平均情况下,快速排序的递归深度为logn。这是因为每次划分数组时,都将基准元素放入正确的位置,并保证了左边的子数组元素都小于等于基准,右边的子数组元素都大于等于基准。这种划分方式保证了每次划分的规模都约为原来的一半,从而递归深度为logn。 因此,快速排序的空间复杂度可以看作是递归深度乘以每个栈帧的大小,即O(logn) * O(n) = O(nlogn)。这说明快速排序的空间复杂度平均情况下为O(nlogn),而在最坏情况下为O(n)。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值