WALKER

Dasturchi, frilanser, gik va introvert

Kategoriya

Algoritmlar

by Sherzod Shermukhamedov

R-way tries

Binary search tree

Ushbu mavzu string key'lar qidiruvi uchun mo'ljallangan ma'lumotlar tuzilmasi - tries (trays) haqida bo'ladi. Shu vaqtgacha ko'rib o'tgan ma'lumotlar tuzilmalaridan qidiruv uchun eng yaxshisi red-black tree - key'ni qidirish / qo'shish / o'chirish uchun O(log N) vaqtni kafolatlardi.

by Sherzod Shermukhamedov

Suffix array va matnni suffix array'da qayta ishlash

maxresdefault

Bizga N belgiga ega matndan so'zni qidirib, barcha so'zlarni topish kerak bo'lsin. To'g'ri, so'zni topadigan tayyor sub-string funksiyalar allaqachon mavjud. Ammo texnik intervyu jarayonida qo'yiladigan masalada tayyor funksiyadan foydalanmaslik kerak bo'ladi. Bunda odatiy yechim - brute-force algor

by Sherzod Shermukhamedov

3-way Radix Quicksort

Sorting

Dijkstra'ning 3-way partitioning quicksort algoritmi bilan tanishib chiqqan bo'lsangiz kerak. U quicksort'dagi bir xil key'lar uchragan holatida ishlash vaqti ortishini oldini oladi. Biz 3-way quicksort'ga qaytamiz, bu safar bo'luvchi element - pivot'ni key belgilaridan olamiz.

by Sherzod Shermukhamedov

MSD Radix sort

Sorting

LSD Radix sort'da string key'larni o'ngdan chapga tartiblab borgan edik. Albatta, chapdan o'ngga ham tartiblab borishning ham imkoni bor. Buning uchun ro'yhatdagi key'larning bosh harfi (belgisi) bo'yicha tartiblaymiz (Key indexed counting).

by Sherzod Shermukhamedov

LSD Radix sort

Sorting

Biz o'tgan maqolada ko'rib o'tganimiz - key indexed counting tartiblash boshqa algoritmlar uchun asos bo'lib xizmat qiladi. Shu jumladan, LSD (Least Significant Digit) radix sort algoritmi key indexed counting usulini bir xil uzunlikdagi tartiblanadigan string yoki integer qiymatlarning har bir belg

by Sherzod Shermukhamedov

Ford-Fulkerson algoritmini kodda ifodalash

image-from-rawpixel-id-434500-jpeg

Maximum flow'ni topish jarayonida, ba'zida yechimga erishish uchun allaqachon berilgan flow'ni kamaytirish hisobiga boshqa (parallel) edge'da flow'ni oshiriladi. Inson ko'zi bilan ko'rib, qaysi flow'ni kamaytirish, qaysi flow'ni oshirishni o'zi aniqlab olishi mumkin, lekin kodda nima qilishni qanday

by Sherzod Shermukhamedov

Digraph'da minimum cut va maximum flow masalalari

Minimum cut va maximum flow

Graph processing masalalarini o'rganishni davom ettiramiz. Minimum cut - graph'ni ikkiga shunday bo'lish kerakki, uning bo'linish edge'lari bir-biriga eng kam (kuchsiz) bog'langan joyi bo'lsin. Oddiyroq aytganda, graph'ni ikkiga bo'lish uchun eng kam harajat / kuch talab etilsin.

by Sherzod Shermukhamedov

Digraph'da negativ weight'lar

1_dtmsuTMqRvYzkUCS25tLDA

Ushbu maqolada biz negativ (manfiy) weight'larning graph'da shortest path'ni topishdagi ta'sirini ko'rib chiqamiz. Avvaldan aytib o'tish kerakki, negativ weight'lari bor graph'lar uchun bir ko'rib o'tgan Dijkstra algoritmi ishlamaydi.