33 lines
573 B
Fortran
33 lines
573 B
Fortran
|
|
|||
|
!<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
|
|||
|
|
|||
|
|
|||
|
|