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 相关文章推荐
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
pandas string转dataframe的方法
Apr 11 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
详解Python Celery和RabbitMQ实战教程
Jan 20 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 Python
python munch库的使用解析
May 25 Python
pandas中对文本类型数据的处理小结
Nov 01 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实现的功能是显示8条基色色带
2006/10/09 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
php精度计算的问题解析
2019/06/21 PHP
一些不错的js函数ajax
2008/08/20 Javascript
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
python中requests使用代理proxies方法介绍
2017/10/25 Python
浅谈python数据类型及类型转换
2017/12/18 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python创建自己的加密货币的示例
2021/03/01 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
新闻记者实习自我鉴定
2013/09/19 职场文书
教师评优事迹材料
2014/01/10 职场文书
销售团队激励口号
2014/06/06 职场文书
超市周年庆活动方案
2014/08/16 职场文书
大型公益活动策划方案
2014/08/20 职场文书
岗位聘任协议书
2015/09/21 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
MySQL分区以及建索引的方法总结
2022/04/13 MySQL