昼、知人に連れられて難波にある鰻屋に行く。いづもや。どうやら結構な老舗っぽい。
大阪に住んで20年オーバーだが知らんかった。やっぱり大阪外の人間のほうが大阪名物とか大阪の店について詳しかったりする。そもそも鰻を自腹で食べるという発想があんまりないしなぁ。
うな重の呼び方がまむしだった。店員さんのキャラ濃かったり、前金とかなにかと特殊ワールドだ。並・上・特とあって大抵上から2番目がコストパフォーマンス最強ていう都市伝説にのっとって上を。上で1050円。おいしかった。個人的には鰻は大阪だったら大阪竹葉亭(大阪とか言ってるが関東風)が最強だとおもふ。しかし竹葉亭はお値段も強すぎるので、デイリーに鰻食べたいときにはいいなここ。
クイックソートをfortranで書けたっぽい。Rubyのサンプルを書き換えただけなんだが。Rubyのと出力は一致してるしまぁこれでいいんかな。fortranのクイックソートのサンプルは検索して単品が出てこなかった(ライブラリとかはあったけど)ので、とりあえず貼っといてみる試み。Sunのライブラリにはクイックソート入っているとの噂だが。
以下11の整数要素を持つ配列arrayをクイックソートするあまりにも適当なサンプル。間違っているかもしれん。
implicit none
integer:: array(11)
integer:: left,right,lp,rp,pivot,n
integer :: t,i,part
interface
subroutine qpartition(array,left,right,part)
integer :: array(:)
integer ::left,right,part
end subroutine
recursive subroutine qsort(array,left,right)
integer :: array(:)
integer ::left,right
end subroutine
end interface
left=1
right=11
array(1:11)=(/16,5,3,2,21,10,4,6,7,9,18/)
print*,"array=",array
call qsort(array,left,right)
print*,"array=",array
end
recursive subroutine qsort(array,left,right)
integer ::array(:)
integer ::left,right,part
interface
subroutine qpartition(array,left,right,part)
integer ::array(:)
integer :: left,right,part
end subroutine
end interface
if (left == right) then
return
end if
call qpartition(array,left,right,part)
call qsort(array,left,part-1)
call qsort(array,part,right)
end subroutine
subroutine qpartition(array,left,right,part)
integer ::array(:)
integer ::left,right,part
integer ::t,i,pivot
integer ::lp,rp
pivot=array(int((left+right)/2))
print*,"pivot=",pivot,"at",int((left+right)/2)
lp=left
rp=right
do while (.true.)
do while (array(lp) < pivot)
lp=lp+1
end do
do while (array(rp) > pivot)
rp=rp-1
end do
if (lp > rp ) exit
print*,array
print*,"lp=",lp,"rp=",rp
t=array(lp)
array(lp)=array(rp)
array(rp)=t
lp=lp+1
rp=rp-1
end do
part=lp
end subroutine
作ってて知ったしょーもないことのメモ書き
fortranの無限ループは do while (.true.)~end do
形状引継ぎ配列を引数にもつサブルーチンを別のサブルーチンでコールするときには、呼び出し側のサブルーチン内にもinterface文が必要
それにしても無駄に長い。interface文とかのせいだ。たぶんmodule文とか使えばもっと簡潔になりそうな。というわけでmoduleについてちょっと調べよう。
2008年1月5日土曜日
土用でもないが
登録:
コメントの投稿 (Atom)
0 コメント:
コメントを投稿