SUB_WAVELET/Fortran/FUNC_median.f90
2025-04-17 11:06:03 +08:00

33 lines
573 B
Fortran

!求数组的中位数(偶数个时取平均值)
real*8 function median(n,A)
implicit none
integer :: n
real*8 :: A(n)
real*8 :: B(n),temp
integer :: i,j
!从小到大排序
B = A
do i=1,n-1
do j=i+1,n
if(B(i)>B(j)) then
temp = B(i)
B(i) = B(j)
B(j) = temp
end if
end do
end do
!按奇偶取中位数
if(mod(n,2)==1) then
median = B(n/2+1)
else
median = (B(n/2)+B(n/2+1))/2.0
end if
end function