Python实现的合并两个有序数组算法示例


Posted in Python onMarch 04, 2019

本文实例讲述了Python实现的合并两个有序数组算法。分享给大家供大家参考,具体如下:

思路

按位循环比较两个数组,较小元素的放入新数组,下标加一(注意,较大元素对应的下标不加一),直到某一个下标超过数组长度时退出循环

假设两个源数组的长度不一样,那么假设其中短的数组用完了,即全部放入到新数组中去了,那么长数组中剩下的那一段就可以直接拿来放入到新数组中去了。

#coding=utf-8
#合并数据
test1 = [1,2,5,7,9]
test2=[2,4,6,8,10,11,34,55]
def mergetest(test1,test2):
  result =[]
  len1=len(test1)
  len2=len(test2)
  i=0
  j=0
  while i<len1 and j<len2:
    if test1[i]<=test2[j]:
      result.append(test1[i])
      i+=1
    else:
      result.append(test2[j])
      j+=1
  if i<len1:
    for z in range(i+1,len1):
      result.append(test1[z])
  elif j<len2:
    for z in range(j+1,len2):
      result.append(test2[z])
  return result
print mergetest(test1,test2)

运行结果:

[1, 2, 2, 4, 5, 6, 7, 8, 9, 11, 34, 55]

add:链表情况下合并

def merge_link(link1,link2):
  head = single_link(0)
  first = head
  while link1!=None and link2!=None:
    if l1.val<=l2.val:
      head.next =l1
      l1=l1.next
    else:
      head.next=l2
      l2=l2.next
    head=head.next
  if l1!=None:
    head.next=l1
  elif l2!=None:
    head.next=lw
  return first.next

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现对比不同字体中的同一字符的显示效果
Apr 23 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
pandas 透视表中文字段排序方法
Nov 16 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
Python3开发环境搭建详细教程
Jun 18 Python
vscode调试django项目的方法
Aug 06 Python
详解python方法之绑定方法与非绑定方法
Aug 17 Python
python关于倒排列的知识点总结
Oct 13 Python
python创造虚拟环境方法总结
Mar 04 #Python
Python3爬楼梯算法示例
Mar 04 #Python
Python3最长回文子串算法示例
Mar 04 #Python
Python地图绘制实操详解
Mar 04 #Python
Python基于opencv实现的简单画板功能示例
Mar 04 #Python
python绘制漏斗图步骤详解
Mar 04 #Python
详解Python字典的操作
Mar 04 #Python
You might like
谈谈PHP语法(3)
2006/10/09 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
vue数据双向绑定的注意点
2017/06/23 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
python获取多线程及子线程的返回值
2017/11/15 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
python for和else语句趣谈
2019/07/02 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python验证码图片处理(二值化)
2019/11/01 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
2014年教师节座谈会发言稿
2014/09/10 职场文书
运动会新闻稿
2015/07/17 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python