码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构算法之求中位数

时间:2018-07-06 20:51:08      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:als   ==   else   数据结构   转换   方法   个数   class   数组元素   

给定两个有序数组,求其中位数的算法

中位数定义:如果元素个数为奇数,则中位数为数组中间的那个数;如果数组元素个数为偶数,则中位数为中间两个数的平均数

求解方法一(归并求解):

def findmidsort(list1,list2):
    num = []
    while list1 and list2:
        if list1[0] > list2[0]:
            num.append(list2[0])
            list2.pop(0)      #除去list2[0]元素后的list2列表
        else:
            num.append(list1[0])
            list1.pop(0)
    if list1 != 0:
        num.extend(list1) 
    if list2 != 0:
        num += list2   #等同以上extend()函数
    if len(num)%2 ==0:
        tem = int(len(num)/2) #需要整形转换
        res = (num[tem] + num[tem-1])/2
    else:
        res = num[int(len(num)/2)]
    return res

list1 = [1,2,3,6,9,10]
list2 = [1,3,4,11,12,13,14,15,16]
print(findmidsort(list1,list2))

  

数据结构算法之求中位数

标签:als   ==   else   数据结构   转换   方法   个数   class   数组元素   

原文地址:https://www.cnblogs.com/lpzblog/p/9275425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!