当前位置:首页python > 正文

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 = [31415926535]
result = find_median(unsorted_array)
print(result)

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 = [31415926535]
result = find_median(unsorted_array)
print(result)

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


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

最新推荐

热门点击