[Include] strcmp Rбpido
#1

Usando aquela minha include de varGet, stringSet podemos usar a nossa boa e bela criatividade e formar infinitas coisas. Pensando nisto hoje pela manhг, consegui desenvolver um strcmp super rбpido. Que pode vencer qualquer strcmp em longas cadeias de caracteres


Cуdigo:
pawn Code:
#define new_strcmp(%0,%1) \
                (varSet(%0, 1), varGet(%1) == varSet(%0, 0))
Exemplo de Uso:
pawn Code:
if(new_strcmp("o jovem gosta de pao", "o nгo gosta de pao")) {
     printf("sгo iguais");
}
else {
    printf("nгo sгo iguais");
}
close_strcmp("o jovem gosta de pao");
O close_strcmp deve ser dado para fechar a comparaзгo. Usando a primeira string usada. No caso ("o jovem gosta de pao")

Velocidade:
A velocidade desse projeto й bastante rбpida, isto apenas quando usado cadeia enorme de strings, tais maiores que 5 ou 6 caracteres. Pois a velocidade permanece a mesma pois ele nгo faz um loop como strcmp lento da sa:mp fazia

Cadeia de caracteres menores que 5 ou 4 caracteres vгo apresentar uma velocidade inferior ao strcmp

pawn Code:
new tick;
   
    tick = GetTickCount();
    for(new i; i != 100000; i++) {
        if(new_strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", "O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE")) {
        }
       
        close_strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE");
    }
    printf("New Strcmp %d", GetTickCount() - tick);
   
    tick = GetTickCount();
    for(new i; i != 100000; i++) {
        strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", "O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", true);
    }
    printf("SAMP Strcmp %d", GetTickCount() - tick);
Resultados:
Quote:

[07:31:58] New Strcmp 530
[07:32:00] SAMP Strcmp 1960

# Ainda nгo adicionei case_sensitive para FALSE (true no caso de strcmp) Logo quando strcmp й usado em false serб mais rбpido que este projeto, porйm sу se nгo for com muitos caracteres, pois strcmp trabalha com loop in string

pawn Code:
#define strcmp(%0,%1,%2) !new_strcmp(%0, %1)
_

Ao contrбrio do strcmp. Este:

RETORNA TRUE -> STRINGS IGUAIS
RETORNA FALSE -> STRINGS DIFERENTES
Reply


Messages In This Thread
strcmp Rбpido - by ipsBruno - 24.06.2012, 10:20
Re: strcmp Rбpido - by sanalex - 24.06.2012, 10:30
Re: strcmp Rбpido - by humildadeforever - 24.06.2012, 10:33
Re: strcmp Rбpido - by ipsBruno - 24.06.2012, 10:34
Re: strcmp Rбpido - by StrondA_ - 24.06.2012, 11:44
Re: strcmp Rбpido - by sanalex - 24.06.2012, 11:46
Re: strcmp Rбpido - by dPlaYer_ - 24.06.2012, 12:13
Re: strcmp Rбpido - by Edu33 - 24.06.2012, 12:18
Re: strcmp Rбpido - by ipsBruno - 24.06.2012, 13:24
Re: strcmp Rбpido - by paulor - 24.06.2012, 17:39

Forum Jump:


Users browsing this thread: 1 Guest(s)