Function median

Source
pub fn median(vals: &mut [f32]) -> f32
Expand description

Computes the median of a set of values.

The median is the middle value when the data is sorted. For an even number of values, it returns the average of the two middle values. This function modifies the input slice by sorting it in-place.

§Arguments

  • vals - A mutable slice of values. Must contain at least one value. The slice will be sorted in-place as a side effect.

§Returns

The median value as a Real.

§Panics

Panics if the input slice is empty.

§Examples

§Odd Number of Values

use parry2d::math::Real;
use parry2d::utils::median;

let mut values = vec![5.0, 1.0, 3.0, 9.0, 2.0];
let med = median(&mut values);

// With 5 values, the median is the 3rd value when sorted: [1, 2, 3, 5, 9]
assert_eq!(med, 3.0);

§Even Number of Values

use parry2d::math::Real;
use parry2d::utils::median;

let mut values = vec![1.0, 2.0, 3.0, 4.0];
let med = median(&mut values);

// With 4 values, median is average of middle two: (2 + 3) / 2 = 2.5
assert_eq!(med, 2.5);

§Single Value

use parry2d::math::Real;
use parry2d::utils::median;

let mut values = vec![42.0];
let med = median(&mut values);

// The median of a single value is the value itself
assert_eq!(med, 42.0);

§Values Are Sorted In-Place

use parry2d::utils::median;

let mut values = vec![5.0, 1.0, 3.0];
let med = median(&mut values);

// After calling median, the values are sorted
assert_eq!(values, vec![1.0, 3.0, 5.0]);
assert_eq!(med, 3.0);