WALKER

Dasturchi, frilanser, gik va introvert

Kategoriya

Algoritmlar

by Sherzod Shermukhamedov

Dynamic programming

1_yEugK-e5TyuSMPsjLDpb1Q

Dynamic programming (DP, dinamik dasturlash) deb muammoni kichik masalalarga ajratib, ularni faqat bir marta yechish va natijani keyingi bir xil tipdagi masalada ishlatish uchun saqlab turish texnikasiga aytiladi.

by Sherzod Shermukhamedov

NFA simulyatsiyasi va API

maxresdefault

NFA simulyatsiyasini ko'rib chiqishdan avval NFAning o'zini kodda qanday ifodalashni ko'rib chiqamiz. Avvalgi maqolada aytib o'tilganidek, NFAda 0 dan M gacha state'lar + accept state mavjud. M - bu yerda qavs ichiga olingan regular expression'dagi belgilar soni. Masalan ((A*B|AC)D) regexp uchun NFA

by Sherzod Shermukhamedov

Regular expressions

dbnauyuy7y1o3k839iny

Regular expression (yana regex, regexp) - qidirish patternini belgilab beruvchi belgilar ketma-ketligi. Odatda regex'lar matn ichida qidiruv algoritmlarida so'zlarni topish (find), topish va almashtirish (find & replace), hamda kiritilgan ma'lumotni tekshirish uchun ishlatiladi.

by Sherzod Shermukhamedov

Matn ichida qidiruv. Boyer-Moore algoritmi

boyer-moore-algorithm-1-638

Avvalgi mavzuda o'tganimiz - Knuth-Morris-Pratt algoritmi yordamida biz matn ichida qidiruvni O(N + M) vaqt ichida bajara olamiz. Navbatdagi algoritm - Boyer-Moore algoritmi bizga O(N) ni kafolatlay olmasada, amaliyotda KMPdan samaraliroq ishlaydi. O'rganishga ham osonroq ;)

by Sherzod Shermukhamedov

Matn ichida qidiruv. Brute-force yondashuvi

image-from-rawpixel-id-911496-jpeg

Matn ichida so'z/ibora qidiruv (substring search) algoritmlari bilan tanishib chiqishni boshlaymiz. Qo'yiladigan masala juda oddiy. N uzunlikdagi matn ichidan M uzunlikdagi iborani (pattern) topish kerak bo'lsin. Bunda matn juda katta hajmda, pattern esa juda kichik - bir-ikki so'zdan iborat.

by Sherzod Shermukhamedov

Ternary search tries

Binary search tree

Ternary search tries (TST, uchlamchi qidiruv trie) R-way tries'dagi kamchilikka yechim o'laroq tavsiya etiladi. TSTda belgilar indeks ko'rinishida emas, node ichida saqlanadi (R-way tries'da belgilar indeks nomer sifatida saqlanardi). Shuningdek har bir node uch child'ga ega: kichikroq (chap), teng