时间:2021-05-22
关于python的算法一直都是让我们又爱又恨,但是如果可以灵活运用起来,对我们的编写代码过程,可以大大提高效率,针对算法之一“归并排序”的灵活掌握,一起来看下吧~
归并算法——小试牛刀
实例内容:
有 1 个无序列表如下:
list = [23,35,12,34,54,78,76,99]
要求:使其按从小到大排序
图示思路
Python 代码
归并排序理解:
1.通过二分法把一个数组按照递归拆分为左右两组(至到独立元素为止)
2.按照从底层往高层的方法左右数组对比,同时对两个数组的第一个位置进行比大小,将小的放入一个空数组,然后被放入空数组的那个位置的指针往后移一个,然后继续和另外一个数组的上一个位置进行比较,以此类推。到最后任何一个数组先出栈完,就将另外i一个数组里的所有元素追加到新数组后面。
示例:
def merge(a, b):c = []h = j = 0while j < len(a) and h < len(b):if a[j] < b[h]:c.append(a[j])j += 1else:c.append(b[h])h += 1if j == len(a):for i in b[h:]:c.append(i)else:for i in a[j:]:c.append(i)return cdef merge_sort(lists):if len(lists) <= 1:return listsmiddle = len(lists)/2left = merge_sort(lists[:middle])right = merge_sort(lists[middle:])return merge(left, right)if __name__ == '__main__': = [4, 7, 8, 3, 5, 9]print merge_sort(a)到此这篇关于python归并排序算法过程实例讲解的文章就介绍到这了,更多相关python归并排序算法过程图示详解内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Dividea
本文实例讲述了C++实现的归并排序算法。分享给大家供大家参考,具体如下:归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法。该算法是
本文实例讲述了Python排序搜索基本算法之归并排序。分享给大家供大家参考,具体如下:归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序列排序所用
本文实例讲述了PHP排序算法之归并排序(MergingSort)。分享给大家供大家参考,具体如下:基本思想:归并排序:就是利用归并(合并)的思想实现的排序方法。
本文实例讲述了C++实现自底向上的归并排序算法。分享给大家供大家参考,具体如下:一.算法描述自底向上的归并排序:归并排序主要是完成将若干个有序子序列合并成一个完