Introduction
Algoritm — bu biror vazifani bajarish uchun ko'rsatmalar to'plami.
Introduction to Algorithms
- Siz kitobning qolgan qismi uchun poydevor olasiz.
- Birinchi qidiruv algoritmingizni yozasiz (binary search).
- Algoritmning ish vaqti(run time) haqida gapirishni o'rganasiz (Big O notation).
- Algoritmlarni loyihalash uchun umumiy texnikalar bilan tanishasiz
Algoritm — bu vazifani bajarish uchun berilgan ko'rsatmalar to'plami. Kodning har bir bo'lagi biror algoritm hisoblanadi, lekin bu kitobda siz qiziqarli va murakkabroq algoritmlar bilan tanishasiz. Men bu algoritmlarni qo'shdim, chunki ular samarali yoki qiziqarli muammolarni hal qiladi. Quyida ba'zi asosiy mavzular keltirilgan.
- 1-bobda binary search va u qanday qilib kodingizni tezlashtirishi haqida gapiriladi. Masalan, kerakli qadamlar soni 4 milliarddan 32 tagacha kamayadi!
- GPS qurilmalari sizga manzilingizgacha eng qisqa yo'lni topishda graf algoritmlaridan foydalanadi (6, 7 va 8-boblarda bu haqida bilib olasiz).
- Shashka o'yinini o'ynay oladigan sun'iy intellektni yozish uchun dynamic programming (9-bob) ishlatiladi.
Men har bir algoritmni batafsil tushuntirib, misollar bilan ko'rsataman. Shuningdek, har bir algoritmning ish vaqti haqida, ya'ni Big O notatsiyasida so'z yuritaman. Nihoyat, shunga o'xshash algoritmlar bilan qanday muammolarni hal qilish mumkinligini o'rganasiz.
Ishlash haqida nima o'rganasiz?
Yaxshi yangilik: Bu kitobdagi har bir algoritmni o'zingizning sevimli dasturlash tilingizda yozishingiz mumkin. Agar mavjud bo'lmasa, ularni noldan o'zingiz yaratishingiz ham mumkin. Biroq, agar algoritmning samaradorligini tushunmasangiz, ilovalaringiz kam samarali bo'ladi. Ushbu kitobda siz turli algoritmlar orasidagi farqlarni o'rganasiz: Merge sort yoki Quick sort dan qaysi biri afzalroq? Array yoki List qaysi biri ma'qul? Faqat to'g'ri ma'lumot tuzilmasini tanlash ham katta farq keltirib chiqarishi mumkin.
Muammolarni hal qilish haqida nima o'rganasiz?
Siz hozirgacha yechimini topa olmagan muammolarni hal qilish usullarini o'rganasiz. Masalan:
- Agar video o'yinlar yaratishni yoqtirsangiz, graf algoritmlardan foydalangan holda foydalanuvchini kuzatadigan sun'iy intellekt tizimini yozishni o'rganasiz.
- k-eng yaqin qo'shnilar algoritmi yordamida tavsiya tizimini qanday yaratishni bilib olasiz.
- Ba'zi muammolarni o'z vaqtida hal qilib bo'lmaydi. Kitobning NP-to'liq muammolar bo'limida, siz bu turdagi muammolarni qanday aniqlashni va ularni taxminiy algoritmlar bilan qanday yechishni o'rganasiz.
Umuman olganda, kitob oxirida keng tarqalgan algoritmlar haqida chuqur tushunchaga ega bo'lasiz.