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 = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 , 3 , 5 ] 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 = [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 , 3 , 5 ] result = find_median(unsorted_array) print (result) |
这个代码不会修改原始数组。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
