本文实例讲述了Python查找两个有序列表中位数的方法。,具体如下:

今天做到的一个机试题目,很简单,这里简单记录一下:

我用的是归并的思想,当然还可以用递归的方法,下面是具体实现:

#!usr/bin/env python

#encoding:utf-8

'''''

__Author__:沂水寒城

功能:找到两个有序列表的中位数

若列表总长度为奇数则直接返回中间下标的值

否则返回前一个值,如长度为6则返回下标为2处的值

'''

import random

def random_nums_genetor(max_value=1000, total=100):

'''''

生成随机数

'''

num_list=[]

for i in range(total):

num_list.append(random.randint(1,max_value))

return num_list

def find_two_list_mid_num(num_list1,num_list2):

'''''

找到两个有序列表的中位数

'''

length1=len(num_list1)

length2=len(num_list2)

total=length1+length2

if total%2==0:

half=total/2-1

else:

half=total/2

res_list=[]

while len(num_list1) and len(num_list2):

if num_list1[0]

res_list.append(num_list1.pop(0))

else:

res_list.append(num_list2.pop(0))

if len(num_list1):

res_list+=num_list1

elif len(num_list2):

res_list+=num_list2

#print res_list

print res_list[half]

return res_list

if __name__ == '__main__':

print "易采站长站测试结果:"

num_list1=[1,2,5,7,12,45,67,100]

num_list2=[11,34,77,90]

res_list=find_two_list_mid_num(num_list1,num_list2)

print res_list[5]

print '--------------------------------------------------------'

num_list1=random_nums_genetor(max_value=1000, total=10)

num_list2=random_nums_genetor(max_value=100, total=7)

res_list=find_two_list_mid_num(num_list1, num_list2)

print res_list[8]

结果如下:

(代码摘自《Python Cookbook》)

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

python 找到两个排序数组的中位数_Python查找两个有序列表中位数的方法【基于归并算法】...相关推荐

  1. python找到一行单词中最长的_python - 查找.txt文件中最长的单词,不带标点符号 - SO中文参考 - www.soinside.com...

    我正在做Python文件I / O练习,尽管在尝试查找.txt文件每一行中最长的单词的练习上取得了巨大进步,但我无法摆脱标点符号.] > 这是我的代码:with open("origi ...

  2. python找到字符中空格所在的位置_python查找空格和中文

    前言 图片或者文件夹下,命名不规范,有中文或者有空格.这个脚本批处理查找,并输出到 txt中方便修改,也可以扩展为 直接脚本删除空格等.目前只用在Windows上,mac没有测试,不知道能不能行,有需 ...

  3. python找到字符中空格所在的位置_Python 查找字符在字符串中的位置示例效果

    Python 查找字符在字符串中的位置实例 下面为大家分享一篇Python 查找字符在字符串中的位置实例,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 str_1='wo shi yi zh ...

  4. 两个排序数组的中位数(4.Median of Two Sorted Arrays)

    题目: 有两个排序的数组nums1和nums2分别为m和n大小. 找到两个排序数组的中位数.整体运行时间复杂度应为O(log(m + n)). 示例1: nums1 = [1,3] nums2 = [ ...

  5. Leetcode4---求两个排序数组的中位数

    题目:给定两个排序数组,求两个排序数组的中位数,要求时间复杂度为O(log(m+n)) 举例: Example 1: nums1 = [1, 3] nums2 = [2]The median is 2 ...

  6. leetcode题库:4.两个排序数组的中位数

    题目: /**   *leetcode题库:4. 求两个排序数组的中位数  *  *  给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 .  *  请找出这两个有序数组的中位数. ...

  7. 算法-两个排序数组的中位数

    题目 两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 示例 1:num ...

  8. LeetCode 4 两个排序数组的中位数

    有两个大小为 m 和 n 的排序数组 nums1 和 nums2 . 请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) . 示例 1: nums1 = [1, 3] num ...

  9. LeetCode上求两个排序数组中位数问题—— Median of Two Sorted Arrays

    1.题目 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...

最新文章

  1. 107. Leetcode 123. 买卖股票的最佳时机 III (动态规划-股票交易)
  2. Spring-在IoC中装配Bean系列文章导读
  3. JSP的getRequestDispatcher()与sendRedirect()的区别
  4. 漂亮的页面过渡动画源码
  5. redis简述及安装
  6. 测试经理管理团队应注意的点
  7. 【报告分享】2020年中国企业直播研究报告-36氪.pdf(附下载链接)
  8. 合数分解1(C语言)
  9. 面试丨求职时这样回答问题你就输了!来自IT面试官视角的深度解读
  10. 基于RecyclerView的图片浏览器
  11. iOS Code Signing 学习笔记转写
  12. 5G通信设备安装,不仅是技术活,更是一门艺术活!(干货图文大全)
  13. 简单易懂的10折交叉法
  14. 深入理解TCP三次握手与四次挥手过程以及抓包实验
  15. day16re模块和面向对象
  16. 保护! 一款插件,2行代码,去除CSDN的关注博主阅读全文
  17. Office2021与mathtype7.4兼容问题_1_Office2021(尤其是word2021)与mathtype7组合出现点击mathtype选项后word卡顿并闪退解决方法
  18. 组态王和plc之间如何建立通讯?
  19. 语音识别与隐马尔可夫模型(HMM)
  20. 解决Git add无法提交,报错fatal : LF would be replaced by CRLF...

热门文章

  1. python之模块导入
  2. 耶鲁大学计算机科学录取,耶鲁大学计算机科学研究生Offer及录取要求
  3. php打包压缩下载多大,php多文件打包压缩下载简单示例
  4. python组合数据类型实验_实验七 组合数据类型
  5. 练习图200例图纸讲解_【宅家数学课23】经典微课6:苏教版六年级下册比例尺典型例题选讲及练习(含答案)...
  6. python中str和input_python中eval()函数和input()函数用法解析
  7. Redis是单线程为什么还那么快?
  8. 小甲鱼 OllyDbg 教程系列 (七) :VB 程序逆向分析
  9. Spring Data JPA 从入门到精通~javax.persistence概况介绍
  10. php 不喜欢用对象,为什么PHP不在其默认库中使用对象?