Hirdetés
- Honor 200 Pro - mobilportré
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Okosóra és okoskiegészítő topik
- iPhone topik
- Apple iPhone 17 - alap
- Milyen okostelefont vegyek?
- Yettel topik
- Vivo X300 - kicsiben jobban megéri
- Samsung Galaxy S23 Ultra - non plus ultra
Ú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!
- BestBuy topik
- E-roller topik
- Honor 200 Pro - mobilportré
- Kamionok, fuvarozás, logisztika topik
- PlayStation 5
- Mibe tegyem a megtakarításaimat?
- ASZTALI GÉP / ALKATRÉSZ beárazás
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xbox Series X|S
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- G.SKILL Aegis 32GB (2x16GB) DDR4 3000MHz (Beszámítás)
- Eladó Dell OptiPlex 7020 SFF, i5-14500, 16GB DDR5, 256GB SSD, WiFi
- Eladó használt de hibátlan és megkímélt Sony XR55A83JAEP OLED TV.
- Eladó gamer pc, i7, GTX 1660 super
- Üzletből, garanciával, Lenovo ThinkPad T14sRyzen 7 Pro-4750u/32GBRAM/256GBSSD/FULLHD IPS TOUCH
- AKCIÓ! LENOVO ThinkPad P15 Gen1 munkaállomás - i7 10875H 16GB DDR4 512GB SSD Quadro T1000 4GB W
- Poco F4 GT 12/256GB - Független, Fekete - 1 Év Garanciával
- iPhone 11 64GB 100% (3hónap Garancia) - AKCIÓ
- Ventilátor bazár /NZXT/CORSAIR/LIAN LI/DEEPCOOL/ZALMAN/120MM/140MM/VEZÉRLŐK/LED KIT-ek/
- Beszámítás! Asus ROG Strix Scar Edition G533Z notebook-i7 12700H 16GB DDR5 1TB SSD RTX 3060 6GB W11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

