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 pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
视觉直观感受若干常用排序算法
Apr 13 Python
python写一个md5解密器示例
Feb 23 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
在python中安装basemap的教程
Sep 20 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python获取百度热搜的完整代码
Apr 07 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
js实现简单页面全屏
2019/09/17 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
python线程池的实现实例
2013/11/18 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
三下乡活动方案
2014/01/31 职场文书
给校长的建议书100字
2014/05/16 职场文书
负责人任命书范本
2014/06/04 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
学校工作推荐信范文
2014/07/11 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
2015年团支书工作总结
2015/04/03 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis