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日志模块logging简介
Apr 13 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
Python 导入文件过程图解
Oct 15 Python
opencv python如何实现图像二值化
Feb 03 Python
通过实例解析python创建进程常用方法
Jun 19 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 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
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python简单验证码识别的实现方法
2019/05/10 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python可视化实现KNN算法
2019/10/16 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
介绍一下Ruby的多线程处理
2013/02/01 面试题
模具专业推荐信
2013/10/30 职场文书
资产评估专业学生的自我鉴定
2013/11/14 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
大学活动总结格式
2014/04/29 职场文书
和睦家庭事迹
2014/05/14 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书