Hirdetés
Ú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!
- Ennyit dobott egy telefon gyártási költségén a memóriakrízis a Xiaomi szerint
- BestBuy topik
- Renault, Dacia topik
- Vezetékes FEJhallgatók
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Macska topik
- Hővezető paszták
- One otthoni szolgáltatások (TV, internet, telefon)
- Eredeti játékok OFF topik
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Samsung Galaxy S24 Ultra 256 GB + Samsung Galaxy Buds3 + Samsung Galaxy Fit3 - Csere/Beszámítás OKÉ
- 27% - BeQuiet! Pure Loop 2 FX 360mm Vízhűtés!
- LG UltraGear 34GP63AP-B VA Monitor! 3440x1440 / 160Hz / 1ms / FreeSync
- LG UltraWide 38WR85QC-W IPS Monitor! 3840x1600 / 144Hz / 1ms / G-Sync / FreeSync
- HP Elitebook 820 G3 (Intel Core i5-6300U 12,0" FullHD) több darab, akár 11.990Ft
- Samsung 16GB DDR5 5600MHz M425R2GA3PB0-CWM
- Új és újszerű 17-18 Gamer, irodai, üzleti készülékek nagyon kedvező alkalmi áron Garanciával!
- GYÖNYÖRŰ iPhone 13 Pro 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS4365, 100% Akkumulátor
- BESZÁMÍTÁS! Nintendo Switch V2 32GB játékkonzol garanciával hibátlan működéssel
- 27% - Acer EK241Y IPS Monitor! 1920x1080 / 100Hz / 1ms / Adaptive Sync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

