1230431 发表于 2015-2-3 16:19:14

Fortran如何求一组数中的最小几个数(除了排序)

我有一组数,比如:

a(1:7)=8,9,1,4,2,3,5

我要求出最小的前三个数,并求出它相应的下标,除了用排序法还有其它的方法可以实现吗?
谢谢!!!!!!!!!

li913 发表于 2015-2-3 21:42:57

本帖最后由 li913 于 2015-2-3 21:46 编辑

program test
implicit none
real(4) a(7)
logical Lgc(7)
integer ind(1), i
a=(/8,9,1,4,2,3,5/)
Lgc =.true.
do i=1,3
ind = minloc(a,Lgc)
print*,ind! 3,5,6
lgc(ind(1)) = .false.
end do
end program    
如果只是在大量数据中找寻几个数据,或者数据总量很少,这个方法可以。否则还是排序的好。

1230431 发表于 2015-2-3 22:46:57

li913 发表于 2015-2-3 21:42
program test
implicit none
real(4) a(7)


嗯嗯,非常感谢!!!!!!!!
页: [1]
查看完整版本: Fortran如何求一组数中的最小几个数(除了排序)