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 相关文章推荐
Pycharm远程调试openstack的方法
Nov 21 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
Python装饰器使用你可能不知道的几种姿势
Oct 25 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
python dir函数快速掌握用法技巧
Dec 09 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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垃圾回收机制简单说明
2010/07/22 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python之列表推导式的用法
2019/11/29 Python
Python ORM编程基础示例
2020/02/02 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
信访工作者先进事迹
2014/01/17 职场文书
函授本科自我鉴定
2014/02/04 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
生物学专业求职信
2014/07/23 职场文书
收款委托书范本
2014/09/11 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python