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 21 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python批量处理文件或文件夹
Jul 28 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
五种Python转义表示法
Nov 27 Python
深入理解python多线程编程
Apr 18 Python
python 实现德洛内三角剖分的操作
Apr 22 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
当海贼王变成JOJO风
2020/03/02 日漫
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
动态控制Table的js代码
2007/03/07 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
js中document.write的那点事
2014/12/12 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
Python实现栈的方法
2015/05/26 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Django框架多表查询实例分析
2018/07/04 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Python常用的json标准库
2019/02/19 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
django admin 添加自定义链接方式
2020/03/11 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
《有趣的发现》教学反思
2014/04/15 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
Python实现机器学习算法的分类
2021/06/03 Python