当前位置:首页python > 正文

python 实现在无序数组中找到中位数方法

作者:野牛程序员:2023-12-14 17:56:02python阅读 2791

使用Python来在无序数组中找到中位数的方法可以通过以下步骤实现:

def find_median(arr):
    sorted_arr = sorted(arr)
    length = len(sorted_arr)

    if length % 2 == 0:
        mid1 = sorted_arr[length // 2 - 1]
        mid2 = sorted_arr[length // 2]
        median = (mid1 + mid2) / 2
    else:
        median = sorted_arr[length // 2]

    return median

# 示例用法
unsorted_array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = find_median(unsorted_array)
print(result)

这个方法首先对数组进行排序,然后根据数组长度的奇偶性来确定中位数。如果数组长度是偶数,中位数是中间两个数的平均值;如果数组长度是奇数,中位数是中间的那个数。

请注意,这种方法会改变原始数组的顺序。如果不想改变原始数组,可以使用排序的副本,例如:

def find_median(arr):
    sorted_arr = sorted(arr[:])  # 创建原始数组的副本
    length = len(sorted_arr)

    if length % 2 == 0:
        mid1 = sorted_arr[length // 2 - 1]
        mid2 = sorted_arr[length // 2]
        median = (mid1 + mid2) / 2
    else:
        median = sorted_arr[length // 2]

    return median

# 示例用法
unsorted_array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = find_median(unsorted_array)
print(result)

这个代码不会修改原始数组。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击