SUB_WAVELET/Fortran/FUNC_median.f90

33 lines
573 B
Fortran
Raw Normal View History

2025-04-17 11:06:03 +08:00
!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD>ʱȡƽ<C8A1><C6BD>ֵ<EFBFBD><D6B5>
real*8 function median(n,A)
implicit none
integer :: n
real*8 :: A(n)
real*8 :: B(n),temp
integer :: i,j
!<21><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
!<21><><EFBFBD><EFBFBD>żȡ<C5BC><C8A1>λ<EFBFBD><CEBB>
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