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使用paramiko模块实现ssh远程登陆上传文件并执行
Jan 27 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
Python中拆分字符串的操作方法
Jul 23 Python
python getopt模块使用实例解析
Dec 18 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
python如何支持并发方法详解
Jul 25 Python
基于Python实现天天酷跑功能
Jan 06 Python
如何判断pytorch是否支持GPU加速
Jun 01 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 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生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python实现TF-IDF算法解析
2018/01/02 Python
Python实现常见的回文字符串算法
2018/11/14 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python实现石头剪刀布程序
2021/01/20 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python语言元素知识点详解
2019/05/15 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
使用python实现多维数据降维操作
2020/02/24 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
毕业实习个人鉴定范文
2013/12/10 职场文书
初一地理教学反思
2014/01/16 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
js前端图片加载异常兜底方案
2022/06/21 Javascript