C++ Knuth Morris Pratt Algorithm

Açıklama

  • Knuth Morris Prat Algoritması mantığı metin içersinden kelime aramadan önce ön işlem gerektirmektedir.
  • Ön işlem aranacak olan kelimenin metin içersinde bulunmaması durumunda kaç adım yol alacağıdır. Bu ön işlem sonucu değerler bir boyutlu bir matrise yazılır.

 

 

Kod

#include <bits/stdc++.h> 
#include <iostream>
#include<string.h> 
#include<string>
#include <sys/time.h>

// MEHMET ERIM KMP


using namespace std;
  

void computeLPS(string pattern,int lps[]) 
{ 

	int len = pattern.size();
  
    lps[0] = 0;
  
    int i = 0, j = 1;
    
    while (j < len) { 
        if (pattern[i] == pattern[j]) {  // if i and j is match value of i+1 and lps(j) write
        	i++;
        	lps[j] = i;
        	j++;  
        } 
        else                      
        { 
    
            if (i != 0) {               // if i is not at index of 0 go back
                i--;
  			}
            else                         // if i is beginning, put 0 to LPS
            { 
                lps[j] = 0; 
                j++; 	
            } 
        } 
    } 
    
} 


void KMPSearch(string text, string pattern) 
{ 


	int m = pattern.size();
    int n = text.size();

    int lps[m]; 
  
    computeLPS(pattern, lps); 
    
	
    int i = 0; 
    int j = 0; 
    
    
    while (i <= n) { 

    
    	if(j==m){
    		 printf("Pattern found at index %d \n", i-j); 
		}
    
    
    
        if (pattern[j] == text[i]) { 
            j++; 
            i++; 
        }else{
        	
	        	
	        if(j == 0){      // if i at first characters in the pattern, shift 1 steps
	        	
	        	i++;
	     
	        	
			}else{            // if i not at first character in the pattern, shift until lps values

			  	i+= (j)-lps[j-1];  

			}
		
		j = 0;  // if any missmatch j set default value of 0 
		
		}

	} 

}
  
int main() 
{ 

	string pattern = "AAA";
	string text = "AAAA";

	KMPSearch(text,pattern);
	
    return 0; 
} 
Girl Eating Pizza

Cluster modülü sayesinde, birden fazla CPU çekirdeğinden yararlanarak bir Node.js uygulamasının performansını ve ölçeklenebilirliğini geliştirmek için kullanılabilir.

Girl Eating Pizza

MIPS Assembly programlama dilinde yazılmış üs alma ( Xn ) programıdır.Üs sonuçunu $s4 registerına kaydeder. Kod.datax .word 701y .word 701.textmain addi $16,$0,0 # i degeri ( üs ka

Girl Eating Pizza

MIPS Assembly programlama dilinde yazılmış yaşınızı saate çeviren program.Consoldan aldığı değerlerle işlem yapar. Kod# örnek program yaşanan yıl değerinin ekrandan girilmesiyle bu d

Girl Eating Pizza

PS Assembly programlama dilinde yazılmış üs alma ( Xn ) programıdır.Consoldan aldığı değerlerle işlem yapar.Üs sonuçunu $s0 registerına kaydeder. Kod.datastr .asciiz x=str1 .asciiz

Girl Eating Pizza

import java.applet.Appletimport java.awt.Colorimport java.awt.Graphicspublic class ucgen extends Applet implements Runnable{ private int x int y int z int t

Girl Eating Pizza

import java.applet.Appletimport java.awt.Colorimport java.awt.Graphicsimport java.awt.event.MouseEventimport java.awt.event.MouseListenerimport java.awt.event.MouseMotionListen

Girl Eating Pizza

import java.awt.*import java.applet.Appletimport java.awt.event.MouseEventimport java.awt.event.MouseMotionListenerpublic class mouseekseni extends Applet implements MouseMo

Girl Eating Pizza

import java.awt.*import java.applet.Appletpublic class merdiven extends Applet { public void paint(Graphics a){ int sayac=0 //TOP NASIL ZIPLATILIR

Girl Eating Pizza

import java.applet.Appletimport java.awt.*import javax.swing.JOptionPanepublic class Joptionapplet extends Applet { String sayi1,sayi2 int buyuksayi public void ini