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 相关文章推荐
pytyon 带有重复的全排列
Aug 13 Python
Python获取DLL和EXE文件版本号的方法
Mar 10 Python
Python Requests 基础入门
Apr 07 Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
【python】matplotlib动态显示详解
Apr 11 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
pytorch标签转onehot形式实例
Jan 02 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
如何用Python徒手写线性回归
Jan 25 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 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/04/20 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python实现ftp客户端示例分享
2014/02/17 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
美国内衣品牌:Leonisa
2016/08/14 全球购物
学校门卫岗位职责
2014/03/16 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
学雷锋日活动总结
2015/02/06 职场文书
色戒观后感
2015/06/12 职场文书
孕妇病假条怎么写
2015/08/17 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL