🧠 Algoritmlar va ma'lumotlar tuzilmasi
Dasturchining eng muhim poydevori - 20 bosqichli amaliy qo'llanma
Darslik haqida
Algoritm va ma'lumotlar tuzilmasi - dasturlashning eng chuqur va eng foydali qismi. Bu darslikda siz algoritm samaradorligini o'lchashni (Big-O), massiv, bog'langan ro'yxat, stek, navbat, xesh-jadval, daraxt va graf kabi tuzilmalarni, saralash va qidiruv algoritmlarini, rekursiya, dinamik dasturlash va ochko'z yondashuvni o'rganasiz. Barcha misollar Python tilida va o'zbekcha nomlar bilan yozilgan. Darslik yakunida Toshkent metrosi uchun eng qisqa marshrut qidiruvchi dastur yaratasiz.
Darslik mundarijasi
- 1 Algoritm nima? Algoritm tushunchasi, uning xossalari, blok-sxema va psevdokod yordamida yozish hamda algoritmning kundalik hayotdagi o'... 8 daq.
- 2 Samaradorlik va Big-O notatsiyasi Algoritm tezligini o'lchash, murakkablik sinflari, Big-O notatsiyasini o'qish va xotira sarfini baholash. 11 daq.
- 3 Massivlar Massiv xotirada qanday saqlanadi, indeks nima uchun O(1) ishlaydi, dinamik massivlar va ikki o'lchamli massivlar. 10 daq.
- 4 Bog'langan ro'yxatlar Tugun tushunchasi, bir va ikki tomonlama bog'langan ro'yxatlar, ularni amalga oshirish va massiv bilan taqqoslash. 8 daq.
- 5 Stek (Stack) LIFO prinsipi, stekni amalga oshirish, qavslarni tekshirish, ifodalarni hisoblash va rekursiya bilan bog'liqligi. 10 daq.
- 6 Navbat (Queue) FIFO prinsipi, navbatni to'g'ri amalga oshirish, deque, aylanma navbat va prioritetli navbat bilan tanishuv. 9 daq.
- 7 Xesh-jadval (Hash Table) Xesh funksiya, to'qnashuvlar va ularni hal qilish usullari, yuk koeffitsienti va Python dict ning ichki tuzilishi. 11 daq.
- 8 Daraxtlar Daraxt atamalari, ikkilik daraxt, uni aylanib chiqishning to'rt usuli va daraxtlar qayerda ishlatilishi. 9 daq.
- 9 Ikkilik qidiruv daraxti BST qoidasi, qo'shish, qidirish va o'chirish amallari, muvozanatsizlik muammosi va o'z-o'zini muvozanatlovchi daraxtlar. 8 daq.
- 10 Uyum (Heap) Uyum xossasi, massivda daraxtni saqlash, heapify, prioritetli navbat va heap sort algoritmi. 10 daq.
- 11 Graflar Graf atamalari, yo'naltirilgan va vaznli graflar, qo'shnilik matritsasi va ro'yxati, ularni tanlash mezonlari. 9 daq.
- 12 Graf bo'ylab yurish - BFS va DFS Kenglik va chuqurlik bo'yicha qidiruv, ularning farqi, eng qisqa yo'lni topish, bog'langan komponentlar va topologik sar... 11 daq.
- 13 Oddiy saralash algoritmlari Pufakcha, tanlash va qo'shish usuli bilan saralash - ularning ishlash prinsipi, kodi va taqqoslanishi. 10 daq.
- 14 Samarali saralash algoritmlari Merge sort va quick sort - bo'l va hukmronlik qil yondashuvi, ularning taqqoslanishi va Python Timsort algoritmi. 11 daq.
- 15 Qidiruv algoritmlari Chiziqli va ikkilik qidiruv, ularning taqqoslanishi, bisect moduli va ikkilik qidiruvning noodatiy qo'llanishlari. 10 daq.
- 16 Rekursiya va "bo'l va hukmronlik qil" Rekursiya anatomiyasi, bazaviy holat, chaqiruvlar daraxti, memoizatsiya va bo'l va hukmronlik qil yondashuvi. 13 daq.
- 17 Dinamik dasturlash Optimal qism tuzilma va qoplanuvchi qism masalalar, memoizatsiya va tabulyatsiya, ryukzak va tanga masalalari. 11 daq.
- 18 Ochko'z algoritmlar Ochko'z yondashuv, u qachon ishlaydi va qachon ishlamaydi, mashg'ulotlarni rejalashtirish va Huffman kodlash. 9 daq.
- 19 Eng qisqa yo'l - Dijkstra algoritmi Vaznli grafda eng qisqa yo'lni topish, Dijkstra algoritmi qadamlari, uyum bilan optimallashtirish va A* haqida. 8 daq.
- 20 Amaliy loyiha - Metro marshrut qidiruvchi Graf, BFS, Dijkstra, uyum va xesh-jadvalni birlashtirib, Toshkent metrosi uchun marshrut qidiruvchi dastur yaratamiz. 8 daq.