📄 select.for
字号:
FUNCTION select(k,n,arr)
INTEGER k,n
REAL select,arr(n)
INTEGER i,ir,j,l,mid
REAL a,temp
l=1
ir=n
1 if(ir-l.le.1)then
if(ir-l.eq.1)then
if(arr(ir).lt.arr(l))then
temp=arr(l)
arr(l)=arr(ir)
arr(ir)=temp
endif
endif
select=arr(k)
return
else
mid=(l+ir)/2
temp=arr(mid)
arr(mid)=arr(l+1)
arr(l+1)=temp
if(arr(l).gt.arr(ir))then
temp=arr(l)
arr(l)=arr(ir)
arr(ir)=temp
endif
if(arr(l+1).gt.arr(ir))then
temp=arr(l+1)
arr(l+1)=arr(ir)
arr(ir)=temp
endif
if(arr(l).gt.arr(l+1))then
temp=arr(l)
arr(l)=arr(l+1)
arr(l+1)=temp
endif
i=l+1
j=ir
a=arr(l+1)
3 continue
i=i+1
if(arr(i).lt.a)goto 3
4 continue
j=j-1
if(arr(j).gt.a)goto 4
if(j.lt.i)goto 5
temp=arr(i)
arr(i)=arr(j)
arr(j)=temp
goto 3
5 arr(l+1)=arr(j)
arr(j)=a
if(j.ge.k)ir=j-1
if(j.le.k)l=i
endif
goto 1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -