位置: 编程技术 - 正文
推荐整理分享python编程实现归并排序(python回归结果输出),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python回归方程代码,python回归分析代码,python回归算法有哪些,python如何做回归,python归一数,python回归分析代码,python回归结果输出,python归一数,内容如对您有帮助,希望把文章链接给更多的朋友!
因为上个星期leetcode的一道题(Median of Two Sorted Arrays)所以想仔细了解一下归并排序的实现。
还是先阐述一下排序思路:
首先归并排序使用了二分法,归根到底的思想还是分而治之。拿到一个长数组,将其不停的分为左边和右边两份,然后以此递归分下去。然后再将她们按照两个有序数组的样子合并起来。这样说起来可能很难理解,于是给出一张我画的图。
这里显示了归并排序的第一步,将数组按照middle进行递归拆分,最后分到最细之后再将其使用对两个有序数组进行排序的方法对其进行排序。
两个有序数组排序的方法则非常简单,同时对两个数组的第一个位置进行比大小,将小的放入一个空数组,然后被放入空数组的那个位置的指针往后 移一个,然后继续和另外一个数组的上一个位置进行比较,以此类推。到最后任何一个数组先出栈完,就将另外i一个数组里的所有元素追加到新数组后面。
由于递归拆分的时间复杂度是logN 然而,进行两个有序数组排序的方法复杂度是N该算法的时间复杂度是N*logN 所以是NlogN。
根据这波分析,我们可以看看对上图的一个行为。
当最左边的分到最细之后无法再划分左右然后开始进行合并。
第一次组合完成[4, 7]的合并
第二次组合完成[4, 7, 8]的合并
第三次组合完成[3, 5]的合并
第四次组合完成[3, 5, 9]的合并
第五次组合完成[3, 4, 5, 7, 8, 9]的合并结束排序。
下面放上python的代码
标签: python回归结果输出
本文链接地址:https://www.jiuchutong.com/biancheng/375514.html 转载请保留说明!友情链接: 武汉网站建设