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

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

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:找到两个有序列表的中位数
若列表总长度为奇数则直接返回中间下标的值
否则返回前一个值,如长度为6则返回下标为2处的值
'''import randomdef 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_listdef find_two_list_mid_num(num_list1,num_list2):'''找到两个有序列表的中位数'''length1=len(num_list1)length2=len(num_list2)total=length1+length2if total%2==0:half=total/2-1else:half=total/2res_list=[]while len(num_list1) and len(num_list2):if num_list1[0]<num_list2[0]:res_list.append(num_list1.pop(0))else:res_list.append(num_list2.pop(0))if len(num_list1):res_list+=num_list1elif len(num_list2):res_list+=num_list2#print res_listprint res_list[half]return res_listif __name__ == '__main__':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]

结果如下:

12
12
--------------------------------------------------------
969
969
[Finished in 0.3s]

python找到两个有序列表的中位数相关推荐

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

    本文实例讲述了Python查找两个有序列表中位数的方法.,具体如下: 今天做到的一个机试题目,很简单,这里简单记录一下: 我用的是归并的思想,当然还可以用递归的方法,下面是具体实现: #!usr/bi ...

  2. python合并两个有序列表(list)

    python合并两个有序列表(list) 原来的列表是有序的合并之后的列表也要是有序的. 很多时候,我们会遇到一个问题,我们希望使用归并排序的归并函数,这是一个经典问题,在竞争性编程中经常出现.这种类 ...

  3. Python寻找两个有序数组的中位数

    Python寻找两个有序数组的中位数 审题: 找出意味着这是一个查找算法题 算法复杂度log级别,就是提示你是二分查找 二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: 定理: 有 ...

  4. python 找到两个排序数组的中位数_4. 寻找两个有序数组的中位数(Python)

    题目 (难)给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 nu ...

  5. Python合并两个有序列表

    提出要求: 合并两个有序列表 例如: L1=[23,45,67,77,78,80,90] L2=[4,11,26,33,42,61,80] 解决方法: 方法1:使用Python自带的extend()方 ...

  6. python合并两个有序列表_Python实现合并两个有序链表的方法示例

    本文实例讲述了Python实现合并两个有序链表的方法.分享给大家供大家参考,具体如下: 思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一 ...

  7. python合并两个有序列表_合并两个有序链表(Python3)

    提出问题:将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...

  8. python 多个列表合并_Python对两个有序列表进行合并和排序的例子

    Python对两个有序列表进行合并和排序的例子 这篇文章主要介绍了Python对两个有序列表进行合并和排序的例子,最终代码经过不断优化,小编非常满意,需要的朋友可以参考下 假设有2个有序列表l1.l2 ...

  9. 两个有序数组的中位数 python_Python寻找两个有序数组的中位数实例详解

    Python寻找两个有序数组的中位数 审题: 1.找出意味着这是一个查找算法题 2.算法复杂度log级别,就是提示你是二分查找 3.二分查找实现一般为递归 (1)递归包括递归体 (2)终止条件 思路: ...

  10. python【力扣LeetCode算法题库】4- 寻找两个有序数组的中位数

    寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...

最新文章

  1. Lecture 0 --基本说明
  2. 为什么阿里不允许用Executors创建线程池
  3. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
  4. MAT分析OOM问题
  5. 通用滤波器设计----东南大学的
  6. android stackview,Android StackView 使用示例
  7. Mac忘记root密码(Mac OS Sierra忘记root密码如何重置)
  8. 动词ing基本用法_哪些动词后面只能接动名词背诵口诀
  9. tcpdump 一个比较详细的用法
  10. spring02IOC
  11. 一般不要在头文件中定义变量
  12. 图像分割与GAN网络
  13. java生成pdf旋转_Java 添加、删除、旋转PDF页面
  14. 龙卷风路径_ae龙卷风路径
  15. win10查看无线密码
  16. Unity配置混合现实应用程序
  17. word2007制作封面、扉页和目录
  18. Android 高级UI解密 (三) :Canvas裁剪 与 二维、三维Camera几何变换(图层Layer原理)
  19. 《小狗钱钱》思维导图
  20. java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+

热门文章

  1. oracle中字母A或B是否包含在字符串中
  2. 灵敏度和稳定性能兼具 新气体传感器技术适用于工业应用
  3. CVPR 2017精彩论文解读:综合使用多形态核磁共振数据的3D生物医学图像分割方法...
  4. sedna进行xquery查询
  5. Eclipse Code Template 设置自动加注释
  6. centos出现“FirewallD is not running”
  7. Centos7搭建pptp一键安装脚本
  8. 各类4G手机进入工参模式查看手机信息
  9. [编写高质量代码:改善java程序的151个建议]建议66 asList方法产生的List对象不可更改...
  10. 【原】 OPenCV学习笔记1:imread()