Ú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!
- Apple iPhone 13 mini - miért nem veszik elegen?
- total90: SSD és HDD árak 2026-ban – most kell vásárolni, vagy várni 2028-ig?
- AliExpress tapasztalatok
- Wise (ex-TransferWise)
- Egyéni arckép 2. lépés: ARCKÉPSZERKESZTŐ
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- PC-k milliói kerülhetnek veszélybe idén
- Véred is megfagy majd: Teszteltük a Reanimalt
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Projektor topic
- További aktív témák...
- iPhone 14 256 GB (Purple) eladó
- Google Pixel 10XL 256GB 100% hibátlan 2027.10.27. gyártói jótállás
- Itachi! Felsőkategóriás Gamer PC! Csere-Beszámítás! R7 9800X3D/ 9070XT / 32GB DDR5 / 2TB Nvme SSD
- i5 12500/ 32GB DDR5/ RTX5060/ 1TB m.2 SSD alapú konfig/ garancia/ ingyen foxpost
- ZBook Fury G8, i7-11850H, 32GB, RTX A2000, Gyönyörű, HP Garancia
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U Refurbished - Garancia
- BESZÁMÍTÁS! ASRock B650M R7 8700F 32GB DDR5 512GB SSD RX 6800XT 16GB Zalman Z1 PLUS CM 750W
- BESZÁMÍTÁS! ASUS H110M i5 7500 8GB DDR4 240GB SSD GTX 1050Ti 4GB Cooler Master ATX DeepCool 400W
- MinisForum HM80 mini PC - Ryzen 7 4800 / 16GB / 512 GB SSD / Win 11
- Ducky One 3 FULL/TKL/SF/MINI billentyűzetek többféle színben és kapcsolókkal, plusz csuklótámaszok
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

