Algoritmlar va ma'lumotlar strukturalari β 0 dan Expertgacha¶
Bu kitob sizni algoritmik fikrlash bo'yicha mutlaqo noldan β "algoritm nima?" degan savoldan β ekspert darajasiga olib chiqadi. Eng oddiy chiziqli algoritm tuzishdan boshlab (ketma-ket qadamlar), tarmoqlanuvchi va takrorlanuvchi algoritmlar, rekursiya, so'ng algoritmlarni tahlil qilish (Big-O, murakkablik), barcha asosiy ma'lumotlar strukturalari (massiv, ro'yxat, stack, queue, hash, daraxt, heap, graf), algoritm paradigmalari (divide & conquer, greedy, dinamik dasturlash, backtracking), klassik algoritmlar (saralash, qidiruv, graf, string) va nihoyat hisoblash murakkabligi nazariyasi (P, NP, NP-to'liqlik) hamda yakuniy kapstonga yetadi.
π§ Til-mustaqil kitob. Algoritm β bu sintaksis emas, fikr. Shuning uchun bu kitob biror dasturlash tiliga bog'lanmaydi: asosiy yuk diagrammalar (blok-sxema, struktura tasviri), psevdokod va matematik tahlilda. Lekin har bir algoritm yonida ishlaydigan Python namunasi beriladi, chunki Python psevdokodga eng yaqin va o'qishga qulay til. G'oyalar har qanday tilda (C, Java, JS, Go...) bir xil qo'llaniladi.
βοΈ HALOL eslatma. Bu kitob nazariy: u sizga algoritmlarni yodlatmaydi, balki ularni qanday o'ylab topishni, nega ishlashini (to'g'rilik isboti) va qancha tez ishlashini (murakkablik tahlili) o'rgatadi. Murakkablik baholari (Big-O) β matematik aniq; Python namunalari haqiqatan ishga tushirib tekshirilgan. Amaliy masalalar to'plamini esa 1000 masala kitobida topasiz β bu ikki kitob bir-birini to'ldiradi: bu yerda nazariya va tushuncha, u yerda mashq va intervyu masalalari.
βΉοΈ Bu kitob siz kamida bitta dasturlash tilida asosiy kod yoza olasiz deb hisoblaydi (o'zgaruvchi, shart, sikl, funksiya, massiv). Agar yangi bo'lsangiz, avval Python yoki JavaScript kitobidan birini ko'rib chiqing. Matematikadan faqat maktab darajasi (daraja, logarifm tushunchasi) yetarli β kerakli matematikani kitobning o'zi tushuntiradi.
Boblarni tartib bilan o'qing (01 β 02 β ...). Har qism oldingisiga tayanadi: fikrlash asoslari β tahlil β strukturalar β paradigmalar β klassik algoritmlar β nazariya.
Har bobdagi diagramma va trassirovka jadvallarini diqqat bilan kuzating β algoritm ko'p jihatdan vizual va qadamba-qadam fikrlash.
Kodni faqat o'qib qo'ymang β qog'ozda yoki kompyuterda o'zingiz ishlatib ko'ring, kichik kirishlarda qadamlarni qo'lda kuzating.
Har bobning "Mashqlar" bo'limini albatta ishlang: algoritmika faqat amaliyot bilan o'rganiladi. Avval o'zingiz urinib, keyin yechimni oching.