归并排序python
来源:互联网 发布:mysql 命令行导入 编辑:程序博客网 时间:2024/05/22 05:03
归并排序主要是分治和递归的思想:
首先用二分法将整个数组分割成很多小块
然后合并每个小块,将较小的元素拍到前面
def merge(a, b): c = [] i = j = 0 while i < len(a) and j < len(b): #从中线两边归并,比较大小那个小就把那个元素放在tr[k]中 if a[i] < b[j]: c.append(a[i]) i = i+1 else: c.append(b[j]) j = j+1 if i < len(a): for k in a[i:]: c.append(k) if j < len(b): for k in b[j:]: c.append(k) return cdef m_sort(a): #S为首坐标,T为尾坐标 if len(a) <= 1: return a else: middle = len(a)/2 left = m_sort(a[:middle]) right = m_sort(a[middle:]) # 分治 return merge(left, right) #递归a = [50,10,90,30,70,40,80,60,20]print m_sort(a)
阅读全文
0 0
- [排序] 归并排序(Python)
- 归并排序 with Python
- python 归并排序
- python中的归并排序
- python实现归并排序
- Python 实现归并排序
- python实现归并排序
- [python]归并排序
- python归并排序
- python -归并排序
- Python归并排序算法
- Python:归并排序算法
- Python实现归并排序
- 归并排序 @ Python
- 归并排序 python版
- 归并排序--Python
- 归并排序python
- 归并排序(python)
- Error using == vertcat CAT arguments dimensions are not consistent.
- Implement Queue using Stacks
- spring boot启动器
- LCIS 最长上升公共子序列
- 使用AVPlayer遇到的那些坑
- 归并排序python
- Github进行fork后如何与原仓库同步
- Git--远程仓库的使用和多仓库管理
- 项目中的小Tip
- 单点登录原理与简单实现
- 关于如何讲字符串中的空格或者\n替换为\r\n
- 数据库——sql主机
- java快速排序
- WebService(cxf)安全框架