elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algoritmo KMP(Knuth Morris Pratt)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmo KMP(Knuth Morris Pratt)  (Leído 5,735 veces)
delirio

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Algoritmo KMP(Knuth Morris Pratt)
« en: 14 Julio 2011, 07:25 am »

Alguien tiene el Algoritmo.......lo necesito.......quiero para codificarlo en C++....tengo que presentarlo..........alguien ayudenme........plisss........


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Algoritmo KMP(Knuth Morris Pratt)
« Respuesta #1 en: 14 Julio 2011, 07:27 am »

http://es.wikipedia.org/wiki/Algoritmo_Knuth-Morris-Pratt
http://en.wikipedia.org/wiki/Knuth–Morris–Pratt_algorithm
http://www.ics.uci.edu/~eppstein/161/kmp/
http://www.inf.fh-flensburg.de/lang/algorithmen/pattern/kmpen.htm

Google No muerde... el algoritmo es multilenguaje xD.

Dulces Lunas!¡.


« Última modificación: 14 Julio 2011, 07:31 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Algoritmo KMP(Knuth Morris Pratt)
« Respuesta #2 en: 14 Julio 2011, 07:30 am »

Cualquier libro de algoritmia en la biblioteca de tu universidad lo contiene. Las bibliotecas no muerden.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
0wn3t

Desconectado Desconectado

Mensajes: 2



Ver Perfil WWW
Re: Algoritmo KMP(Knuth Morris Pratt)
« Respuesta #3 en: 22 Julio 2011, 04:50 am »

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "kmp.h"

static int* prefix = NULL;
static int max_size = 0;

static void GetPrefixValue(const char* strPattern, int iPatternLen)
{
    if (iPatternLen>max_size) {
        prefix = (int*)realloc(prefix, iPatternLen*sizeof(int));
        max_size = iPatternLen;
    }
   
    int i, j; /* i runs through the string, j counts the hits*/
    i = 1; j = 0;
    prefix[0] = 0;
   
    while(i<iPatternLen)
    {
        if(strPattern[i] == strPattern[j])
        {
            prefix[i] = ++j;
        }
        else
        {
            j = 0;
            prefix[i] = j;
        }
       
        i++;
    }
}

static int KMPStringMatch(const char* strPattern, int iPatternLen, const char* strTarget, int iTargetLen)
{
int j =0;
int i;
for (i=0;i<iPatternLen;i++) {
while ((strPattern[i] != strTarget[j]) && (j > 0))
j = prefix[j-1];
if (strPattern[i] == strTarget[j])
j++;
if (j == iTargetLen)
return i - j + 1;
}
return -1;
}

int KMP(const char* strPattern, int len, const char* strTarget)
{
GetPrefixValue(strPattern, len);
return KMPStringMatch(strPattern, len, strTarget, strlen(strTarget));
}

void KMP_end()
{
free(prefix);
prefix=NULL;
max_size=0;
}
:)
En línea


Ownet web development
Ownet fanpage
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Banner de MOrris
Sugerencias y dudas sobre el Foro
+ enrique ZP 3 2,465 Último mensaje 1 Octubre 2005, 23:25 pm
por aNexos
Graficos con Morris.js
Desarrollo Web
fdap91 3 3,772 Último mensaje 16 Octubre 2014, 17:54 pm
por fdap91
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines