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条件和循环的使用方法
Nov 01 Python
用python写asp详细讲解
Dec 16 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
python SocketServer源码深入解读
Sep 17 Python
Python中断多重循环的思路总结
Oct 04 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
解决python对齐错误的方法
Jul 16 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
帝国cms常用标签汇总
2015/07/06 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
python线程池的实现实例
2013/11/18 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
python显示生日是星期几的方法
2015/05/27 Python
Django和Flask框架优缺点对比
2019/10/24 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
Python time库基本使用方法分析
2019/12/13 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
学生自我鉴定范文
2013/10/04 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
上班迟到检讨书
2015/05/06 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
Python基础知识之变量的详解
2021/04/14 Python
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python