如何在 JavaScript 中获取数字数组的中位数?
在本文中,我们将了解如何使用 JavaScript 找到数组的中位数。
例子:
Input arr1 : [1 4 7 9]
Output : 5.5
Explanation : The median of the two sorted array is
the middle elements which is 5 if the
arrayLength =arr1.length + arr2.length is odd
if the array length is even then it will be
the average of two number
Input: arr1 : [5 3 1 8 90]
Output: 5
Explanation : The median is average of two number
because the array.length is even for this case.
方法:这里我们先对数组进行排序,然后再求数组长度。如果数组长度是偶数,则中位数将为 arr[(arr.length)/2] +arr[((arr.length)/2)+1]。如果数组长度为奇数,则中位数将是中间元素。
Javascript
Javascript
输出:
5.5
时间复杂度:
O(n + m)
方法2:这里我们首先使变量middle具有中间值,而不管数组长度是奇数还是偶数。现在,我们通过避免突变对数组进行排序。突变意味着用另一个对象名称更改对象名称或将对象传递给另一个称为突变的对象。
可以使用数组、对象的引用数据类型来完成,所以现在避免这种情况。之后,如果数组的长度是偶数,那么我们在 pos arr((arr.length)/2) + arr(((arr.length)/2) +1) 处有两个值。然后取这两个数字的平均值并作为中位数返回。
Javascript
输出:
5.5
时间复杂度:
O(n+m)