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
