===== sort_tst.def ===== 計測部分は H98 以降の98専用マクロです。 該当しない機種では時間は 0 になるでしょう。 * M 80 ^\ "" tt=0,nn-, :L &> ;文字列セット &m("%s OK",pr) &w(5) p=pr, #if 98 &i("$(E5,5E,C3)") t=ax, #endif &10 #if 98 &i("$(E5,5E,C3)") tt+=(ax-t), #endif nn++,(nn<10)?>L e=tt/1200,ee=tt%1200,ee/=12, &a("Time %d.%02d (tt=%u) 書き込みます",e,ee,tt) (r>0)?{ &?(" %d.%02d ",e,ee) } &m(pr) 00: &Sh(pr,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") ; &Sh(pr,"zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210") ; &Sh(pr,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ; &Sh(pr,"01234ABCDEFGHIJKLMNOPQRSTUVWXYZ01234ABCDEFGHIJKLMNOPQRSTUVWXYZ") ; . ax$2c00,&i($21) rn=cx+dx, &Sn(pr) n=r, (200){ &r a=r%n, &r b=r%n, t=pr.a, pr.a=pr.b, pr.b=t, } ; ------ ソートルーチン ------- ; by saki... 37 bytes by macsize ;10: p++.)?{q=p){q.>q--.)?>^((q..)!!)} ; by 高橋 ;10: r=p[, ;:a p++.)?{r.>p.)?r=p, >a} ; r.[=p]., ((p.)]) ; p++.)?>^ ; by くらと ;10: o=p, ;:A o.<=o++.)? >A ; o.)??. ; n=o--., ; seed ; ((o..)!!) q=o++, ;:B q++.)? { n>q.)? { r=o., o.0=q., q.0=r, o++, } >B } ; ((o.)[) o.0-, o[, &10 p], p.0=0], &10 ; by くらと(その2) 166 bytes by macsize ;10: f-, >> ;10: o=p, ;:A o.<=o++.)? >A ; o.)?? >E ; n=o--., ; seed ; ((o..)!!) q=o++, ;:B q++.)? { n>q.)? { r=o., o.0=q., q.0=r, o++, } >B } ; ((o.)[) o.0-, o[, f[+, >^ ;:C f], p], p.0=0], f[2, >^ ;:D f], ;:E (f==1)? >C (f)? >D ; 分布カウント by saki... 239 bytes by macsize 10: &> (i=64){c..i--=0,} i--, ; i=-1, :C (r=p.i++)?{c.r+=1,>C} j=$19,k=-1, ; j=' '-1, :L (122L 10: c3+$,."$[128]" * 計測データ(10回実行した合計データ on PC-9821As2) ランダム ランダム2 正順 逆順 同一 #11345 by saki... 1.66 1.69 0.14 3.17 3.17 #11537 by くらと 1.77 1.61 0.07 8.77 0.07 分布カウント by saki... 0.44 0.44 0.44 0.44 0.43