又一个WordPress站点

19:统计逆序对 Day-Gamedge

19:统计逆序对 Day-Gamedge
统计逆序对是区别线性时间复杂度和平方时间复杂度教科书般的案例,今天我们就来了解一下。
统计逆序对
统计逆序对顾名思义是统计一个给定序列中的逆序对个数(一般遵从正序为升序排列,故若出现降序琉璃厂传奇,鲍飞即为逆序)。传统的比较方法是,我们将每一个数都与其后的数字一一比较大谍战狂花小,并统计逆序对个数,但是传统的方法实在太过于“笨重”无语言伤,导致算法复杂度较高阿良良木月火。因此今天我们采用“分治”的思想来实现算法。
算法思路
本算法的解决方案中我们采取分治的思想进行归并排序,在统计逆序对的同时最终输出升序排列的序列。主要步骤有以下几步(以序列147653为例):
1、将原序列以分治的思想分成两个等长部分;
2、将每个部分分割成单个元素,并统计其中的逆序对个数;
3、将分割好的两部分分别升序排列欧阳慧霏,并统计两个部分间的逆序对个数;
4、将分割的两部分重组蛇皮腿,按升序排列龙蛇大战。

在174653这个序列中共有8个逆序对嫡亲贵女。
问题
1、传统暴力求解和分治思想求解的算法复杂度分别是多少?
获取今日算法和问题答案,请在公众号内回复“统计逆序对”。如若有更为精妙的解决方法无罪之城,欢迎与我们进行讨论。另外从下一期开始,本系列将注重算法思路和过程的讲解而不再关注算法的背景知识路长全。
作者:admin | 分类:全部文章 | 浏览:127 2018 01 29  
« 上一篇 下一篇 »