+ビット演算(+訂正)

ろぎ氏に指摘されたようにビット演算で比較してみた。

    if(b[i]-s[i]){ return 1; }

↓誤
この行を

    if(b[i]&s[i]){ return 1; }

こう変えただけでかなりの高速化。

↓正

    if(b[i]^s[i]){ return 1; }

4文字の場合、先に挙げたintcmp()において同様のビット演算を施すように改良したものを使用すればstrncmp()にくらべ2/3くらいの時間に。たぶん他のところでもっと時間を食うと思うので実使用上はあまり効いてこない気はしますが(汗

再度ろぎ氏に指摘されたので訂正。スポンジぶりに萎えるくらい。