代码实现求三个数中的中位数

您所在的位置:网站首页 三个数比大小最简单 代码实现求三个数中的中位数

代码实现求三个数中的中位数

2024-07-02 18:05| 来源: 网络整理| 查看: 265

1.什么是中位数 给定一组数arr1 = [1,3,0,2,6](奇数的情况)求其中位数 对arr1根据数值大小重新排列:arr1_new = [0,1,2,3,6] 因此,arr1的中位数为2(2在中间位置)

给定一组数arr2 = [1,3,0,2,6,5](偶数的情况) 对arr2根据数值大小重新排列:arr2_new = [0,1,2,3,5,6] 因此,arr2的中位数为**(2+3)/2 = 2.5**(2和3为中间位置,取平均值)

2.代码实现: 一开始的想法:先对这三个数进行排序,再取去排序后的中间的数,即为中位数。 排序算法,在前面的博客中已经有了介绍,比如冒泡排序、快速排序等。 我们以冒泡排序为例: python3代码:

# -*- coding: utf-8 -*- """ Created on Sun Jul 14 17:50:41 2019 @author: ZQQ 找三个数中的中位数 先冒泡排序,再取中间的数 """ def getMid(input_list): ''' 函数说明:冒泡排序(升序) Parameters: input_list - 待排序的列表 Returns: sorted_list - 升序排序后的列表 ''' # 外循环,每次使得有序的数增加一个 for i in range(len(input_list) - 1): # 这个循环负责设置冒泡排序的次数,n个数要进行n-1次冒泡 for j in range(len(input_list) - i - 1): # j为列表下标 if input_list[j] > input_list[j + 1]: input_list[j], input_list[j + 1] = input_list[j + 1], input_list[j] return input_list[1] input_list = [5,2,9] print('三个数为:',input_list) res = getMid(input_list) print('中位数:',res)

运行结果: 在这里插入图片描述 上述方法不是最优解,我们对其进行优化。 在这里我们只有3个数,也就是取三个数中的中间数; (0 , 1 , 2) # 索引 (A, B,C) # 抽象出来的未知数 (5 , 2 , 9) # 分别和A,B,C对应的具体值,作为具体例子 首先A和B进行比较,将两者较大的值放第一位,很显然这里5>2不需要改动, 然后,A和C进行比较,C如果大,则两者位置互换,此时变为: (0 , 1 , 2) (A, B,C) (9 , 2 , 5) A为9,B为2,C为5 最后,B和C进行比较,如果C大,则两者互换: (0 , 1 , 2) (A, B,C) (9 , 5 , 2) 此时索引1位置的数5即为中位数,该两两比较的方法,也就是对这三个数降序排序。 python3代码实现:

# -*- coding: utf-8 -*- """ Created on Mon Jul 15 10:01:42 2019 @author: ZQQ """ def getMid(list): if list[0]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3