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 多维切片之冒号和三个点的用法介绍
Apr 19 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
使用numba对Python运算加速的方法
Oct 15 Python
numpy数组广播的机制
Jul 12 Python
Python+Redis实现布隆过滤器
Dec 08 Python
python cv2截取不规则区域图片实例
Dec 21 Python
python实现批量修改文件名
Mar 23 Python
python使用多线程+socket实现端口扫描
May 28 Python
python小白切忌乱用表达式
May 29 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 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中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
pyhton列表转换为数组的实例
2018/04/04 Python
python socket 聊天室实例代码详解
2019/11/14 Python
python数据预处理方式 :数据降维
2020/02/24 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
为什么相对PHP黑python的更少
2020/06/21 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
满月酒主持词
2014/03/27 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
2015年小学开学寄语
2015/02/27 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
行政二审代理词
2015/05/25 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js