- Google Pixel 10a – évismétlés
- Samsung Galaxy Watch7 - kötelező kör
- One mobilszolgáltatások
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Kívül iOS, belül iPadOS futhat az iPhone Ultrán
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Motorola Edge 50 Ultra - szépen kifaragták
- Xiaomi 14T Pro - teljes a család?
- Okosóra és okoskiegészítő topik
Új hozzászólás Aktív témák
-
amargo
addikt
válasz
Fire/SOUL/CD
#784
üzenetére
Hi!
#define REHASH(a, b, h) ((((h) - (a)*d) << 1) + (b))
void KR(char *x, int m, char *y, int n) {
int d, hx, hy, i, j;
/* Preprocessing */
/* computes d = 2^(m-1) with
the left-shift operator */
for (d = i = 1; i < m; ++i)
d = (d<<1);
for (hy = hx = i = 0; i < m; ++i) {
hx = ((hx<<1) + x[i]);
hy = ((hy<<1) + y[i]);
}
/* Searching */
j = 0;
while (j <= n-m) {
if (hx == hy && memcmp(x, y + j, m) == 0)
OUTPUT(j);
hy = REHASH(y[j], y[j + m], hy);
++j;
}
}Igazából viszont nem értem, mivel a linkelt oldalon ott van az algoritmus azt csak implementálni kell. De ezt én is a lentebb linkelt oldalról raktam be.
Bár gondolom rothkrisz nem hiszem, hogy ennyire optimalizált kódot szeretne megírni, ha ilyet akarna, akkor ismerne még pár szóban forgót: Knuth-Morris-Pratt, Quick-Search stb...
Az én javaslatom inkább egy sima Brute force lenne, annak megvalósítás íme:
void BF(char *x, int m, char *y, int n)
{
int i, j;
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ZOTAC GTX 670 AMP! Edition 2 GB GDDR5 256 bit PCI-E Videokártya
- Gigabyte GA-B75M-D3H LGA 1155 alaplap, + i5-3470S Processzor
- Asus GTX770-DirectCU II OC 2 GB GDDR5 256 bit PCI-E Videokártya
- FSP400-60APN 400W 85+ minősítésű tápegység
- Szép! HP EliteBook 840 G10 Hordozható Ultrabook Fémház 14" -50% i5-1335U 32/1TB Iris Xe FHD+
- Xiaomi Mi 11 lite 5G NE 256GB, Kártyafüggetlen, 1 Év Garanciával
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Samsung Galaxy Watch 4 Classic 42mm, GPS, 1 Év Garanciával
- iPhone 17 White 256 GB - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok - Számlás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


