Sqsort ̃x`}[NeXg̗v

PDSqsort ̊T    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/qiita.txt



QDhttp://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/ 玟̂T̃t@C_E[hB

    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/benchmark 
    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/TimSort.java   
    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/Sqsort.c   
    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/MainTim.java    
    http://ww51.tiki.ne.jp/~srr-cake/qsort/sqs18j/MainSqsort.java   



RDbenchmark sBsʂ benchmark.txt ֏܂B

    Sqsort.c  cpp  Sqsort.java ֕ϊĂRpCB

@@Main*.java Sqsort.java TimSort.java  benchmark ̒ŃRpCEsB
@@Main*.java ̈Əo͂̐́AuSvQ
B
    bench-sample.txt  benchmark.txt ̗łB



SDx`}[NeXgsvO@Main.java

    Main*.java  getCurrentThreadCpuTime() pCPUԂ𑪒肷B
    Main*.java ͎̃p[^w肵ĎsB

    P@L[l̎  0:萔 -1: -2:~ -3:j[N 1: d>=2:%d
    Q@\[gz̗vf
    R@\[ǧJԂ񐔁i莞Ԃ̐x̂߁j

    Main*.java 1̎sŁAsʂ1so͂B
    ̂System.errSystem.outɏo͂Bes̗ƈӖɎB

          TimSort       d=-3        e=10000      R=2000     cmp=240783126   C=8.22
     @vO  L[l̎  vf̌  JԂ񐔁@ r    CPUb

    Sqsort  java ŋLq\[gȂ̂ŁAQƌ^̔z\[g܂B
    Ȃ̂ŁAvfTCY̑召ɂr͍sĂ܂B





Sqsort̉

J Sqsort ͕z̒ n<=15 Ȃ}\[gAn>=16 ȂR_ sB

Jߒł͉L̂悤ȏĂB

       z̒ Ή\[g̎
                 n=0   Ȃ
                 n=1   KvȂvf𕡎
                 n=2   
                  F   }\[g
                n=15   
                  F   R_
                n=50   
                  F   R_
               n=220   
                  F   X_
               n=880   
                  F   QV_

̉ǂ́ASqsortCŋLqꍇAjava32bitł͈̐\𔭊B
Ajava64bitł͂ĒxȂP[XB
̂߁AłRpNgȔłJ邱ƂƂB




gp

Windows{cygwin
RpC javac  AdoptOpenJDK                jdk-11.0.8.10-hotspot
64bit  java @AdoptOpenJDK                jdk-11.0.8.10-hotspot
32bit  java @AdoptOpenJDK                jdk-11.0.8.10-hotspot
64bit  java   Java SE Development Kit 15@jdk-15.0.2 



