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脚本来删除指定容量以上的文件的教程
May 04 Python
python中偏函数partial用法实例分析
Jul 08 Python
Python实现图片转字符画的示例代码
Aug 21 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
Python中pillow知识点学习
Apr 30 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
keras 多gpu并行运行案例
Jun 10 Python
Opencv中cv2.floodFill算法的使用
Jun 18 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自带的进位制之间的转换函数
2013/06/08 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
vue组件开发props验证的实现
2019/02/12 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
记录Django开发心得
2014/07/16 Python
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python在每个字符后添加空格的实例
2018/05/07 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
基于pandas中expand的作用详解
2019/12/17 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
会计自我鉴定范文
2013/10/06 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
房屋委托书范本
2014/04/04 职场文书
工作保证书怎么写
2015/02/28 职场文书
科技馆观后感
2015/06/08 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js