数据结构算法之求中位数
Posted lpzblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构算法之求中位数相关的知识,希望对你有一定的参考价值。
给定两个有序数组,求其中位数的算法
中位数定义:如果元素个数为奇数,则中位数为数组中间的那个数;如果数组元素个数为偶数,则中位数为中间两个数的平均数
求解方法一(归并求解):
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))
以上是关于数据结构算法之求中位数的主要内容,如果未能解决你的问题,请参考以下文章