标签: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