shell.f90

来自「visual fortran常用数值算法集—原代码」· F90 代码 · 共 28 行

F90
28
字号
SUBROUTINE shell(n,arr)
INTEGER m,k,l,j
REAL arr
!parameter (aln2i=1./0.69314718,tiny=1.e-5)
PARAMETER (aln2i=1.4427,tiny=1.e-5)
DIMENSION arr(n)
lognb2=int(alog(float(n))*aln2i+tiny)
m=n
do nn=1,lognb2
  m=m/2
  k=n-m
  do j=1,k
    i=j
    do
      l=i+m
      if (arr(l)<arr(i)) then
        t=arr(i)
        arr(i)=arr(l)
        arr(l)=t
        i=i-m
        if (.not.i>=1) exit
      endif
	  exit
	end do
  end do
end do
END SUBROUTINE shell

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?