专业财税服务推荐

精选优质财税服务,为企业提供专业、可靠的财税解决方案,助力企业健康发展

零报税代理记账
零申报代理记账
报税做账算帐财务报表老会计做账
代理记账
咨询微信:lhy_happyday
工商营业执照年度年报年检公示
全国个体、企业、公司、合作社工商年审年报服务!
个体/10元/次 企业/20元/次
咨询微信:lhy_happyday
财税咨询服务
一对一专业财税咨询,解决企业财税难题,提供定制方案
咨询微信:lhy_happyday
财务分析服务
小规模个体报税0申报税务年报工商年报月报季报报税代理记账
咨询微信:lhy_happyday
立即咨询专业财税顾问
微信号: lhy_happyday
会计从业9年,管理多家个体工商、小规模、一般纳税人等企业的财务、税务等相关工作!。
扫码或搜索添加微信,备注"财税咨询"获取专属优惠
知方号 知方号

快速排序平均时间复杂度分析 梳排序时间复杂度

快速排序平均时间复杂度分析

对 x 1 , … , x n x_1,dots,x_n x1​,…,xn​进行快速排序 partition node: x [ k ] x[k] x[k]为随机划分元 x [ k ] x[k] x[k] 被选择的概率为 1 / n 1/n 1/n,令 C n C_n Cn​ 为规模为n的问题的比较次数(即 T ( n ) T(n) T(n) ) C n = ( n − 1 ) + 1 n ∑ k = 1 n ( C k − 1 + C n − k ) = ( n − 1 ) + 1 n ∑ k = 1 n C k − 1 + 1 n ∑ k = 1 n C n − k = ( n − 1 ) + 1 n ∑ k = 0 n − 1 C k + 1 n ∑ k = 0 n − 1 C k = ( n − 1 ) + 2 n ∑ k = 0 n − 1 C k egin{align*} C_n&=(n-1)+frac{1}{n}sum_{k=1}^n(C_{k-1}+C_{n-k})\ &=(n-1)+frac{1}{n}sum_{k=1}^n C_{k-1}+frac{1}{n}sum_{k=1}^n C_{n-k}\ &=(n-1)+frac{1}{n}sum_{k=0}^{n-1} C_{k}+frac{1}{n}sum_{k=0}^{n-1} C_{k}\ &=(n-1)+frac{2}{n}sum_{k=0}^{n-1} C_{k} end{align*} Cn​​=(n−1)+n1​k=1∑n​(Ck−1​+Cn−k​)=(n−1)+n1​k=1∑n​Ck−1​+n1​k=1∑n​Cn−k​=(n−1)+n1​k=0∑n−1​Ck​+n1​k=0∑n−1​Ck​=(n−1)+n2​k=0∑n−1​Ck​​ 因此 n C n = n ( n − 1 ) + 2 ∑ k = 0 n − 1 C k ① nC_n=n(n-1)+2sum_{k=0}^{n-1}C_kquad ① nCn​=n(n−1)+2k=0∑n−1​Ck​① 用 n − 1 n-1 n−1 代入 n n n,得 ( n − 1 ) C n − 1 = ( n − 1 ) ( n − 2 ) + 2 ∑ k = 0 n − 2 C k ② (n-1)C_{n-1}=(n-1)(n-2)+2sum_{k=0}^{n-2}C_kquad② (n−1)Cn−1​=(n−1)(n−2)+2k=0∑n−2​Ck​② ① − ② ①-② ①−② 得 n C n − ( n − 1 ) C n − 1 = 2 ( n − 1 ) + 2 C n − 1 ⇒ n C n = 2 ( n − 1 ) + ( n + 1 ) C n − 1 ③ ⇒ C n n + 1 = C n − 1 n + 2 ( n − 1 ) n ( n + 1 ) egin{align*} &nC_n-(n-1)C_{n-1}=2(n-1)+2C_{n-1}\ Rightarrow &nC_n=2(n-1)+(n+1)C_{n-1}quad ③\ Rightarrow &frac{C_n}{n+1}=frac{C_{n-1}}{n}+frac{2(n-1)}{n(n+1)} end{align*} ⇒⇒​nCn​−(n−1)Cn−1​=2(n−1)+2Cn−1​nCn​=2(n−1)+(n+1)Cn−1​③n+1Cn​​=nCn−1​​+n(n+1)2(n−1)​​ 令 D n = C n n + 1 D_n=frac{C_n}{n+1} Dn​=n+1Cn​​ 得 D n = D n − 1 + 2 ( n − 1 ) n ( n + 1 ) ④ D_n=D_{n-1}+frac{2(n-1)}{n(n+1)}quad④ Dn​=Dn−1​+n(n+1)2(n−1)​④ 因此 D n = 2 ∑ j = 1 n j − 1 j ( j + 1 ) = 2 ∑ j = 1 n 2 j + 1 − 2 ∑ j = 1 n 1 j = 4 ∑ j = 2 n + 1 1 j − 2 ∑ j = 1 n 1 j = 2 ∑ j = 1 n 1 j + 4 n + 1 − 4 = 2 H n − 4 n n + 1 ≈ 2 ln ⁡ n + O ( 1 ) = 2 log ⁡ 2 e log ⁡ 2 n + O ( 1 ) ≈ 1.44 log ⁡ 2 n egin{align*} D_n&=2sum_{j=1}^nfrac{j-1}{j(j+1)}\ &=2sum_{j=1}^nfrac{2}{j+1}-2sum_{j=1}^nfrac{1}{j}\ &=4sum_{j=2}^{n+1}frac{1}{j}-2sum_{j=1}^nfrac{1}{j}\ &=2sum_{j=1}^nfrac{1}{j}+frac{4}{n+1}-4\ &=2H_n-frac{4n}{n+1}\ &approx2ln n+O(1)\ &=frac{2}{log_2 e}log_2 n+O(1)\ &approx1.44log_2 n end{align*} Dn​​=2j=1∑n​j(j+1)j−1​=2j=1∑n​j+12​−2j=1∑n​j1​=4j=2∑n+1​j1​−2j=1∑n​j1​=2j=1∑n​j1​+n+14​−4=2Hn​−n+14n​≈2lnn+O(1)=log2​e2​log2​n+O(1)≈1.44log2​n​ 因此 C n ≈ 1.44 n log ⁡ 2 n = O ( n log ⁡ n ) C_napprox1.44nlog_2 n=O(nlog n) Cn​≈1.44nlog2​n=O(nlogn)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。