Ichma-ich joylashgan siklik algoritmlar . Ba’zan, takrorlanuvchi algoritmlar bir nechta parametrlarga bog‘liq bo‘ladi. Odatda bunday algoritmlarni ichma-ich joylashgan algortmlar deb ataladi.
Misol sifati berilgan nxm o‘lchovli aij –matritsa elementlarining yig‘indisini hisoblash masalasini qaraylik.
Bu yig‘indi hisoblash uchun, i ning har bir qiymatida j bo‘yicha ko‘paytmani hisoblab, avval yig‘indi ustiga ketma-ket qo‘shib borish kerak bo‘ladi. Bu jarayon quyidagi blok–sxemada aks ettirilgan. Bu yerda i-tashqi sikl - yig‘indi uchun, j-esa ichki sikl-ko‘paytmani hosil qilish uchun foydalanilgan.
Dasturlashda algoritmlar nima uchun muhimligi va ilk algoritmlarni o’rgangandan so’ng endi eng muhim ma’lumotlar tuzilmalarini o’rganishga o’tsak ham bo’ladi. Lekin, bundan oldin ma’lumotlar tuzilmalari o’zi nimaligi va ularni to’g’ri tanlay olish va to’g’ri ishlata olish nima uchun muhimligiga to’xtalib o’tmoqchiman.
Ma’lumotlar tuzilmalari o’zi nima?
Source: jupitervidya.com
Barcha dastur yoki dasturiy mahsulotning asosida ikkita birlik yotadi: ma’lumotlar va ular ustida qandaydir amallar bajaradigan algoritmlar. Algoritmlar ma’lumotlarni biz yoki dastur uchun foydali bo’lgan axborot ko’rinishiga keltirib beradi. Algoritmlar shu ma’lumotlar ustida amallarni (o’qish, yozish, yangilash, o’chirish) samarali va tez bajara olishi uchun biz shu ma’lumotlarni ma’lum bir strukturaga solgan holda saqlashimiz kerak bo’ladi. Demak shunday qilib,
Ma’lumotlar tuzilmasi — bu ma’lumotlarni samarali o’qish va o’zgartirish imkonini beruvchi, ma’lumotlarni saqlash va boshqarishning bir formatga solingan shaklidir. Soddaroq qilib aytganda, ma’lumotlar tuzilmasi — bu ma’lumotlarning ma’lum bir strukturaga solingan, ular o’rtasida ma’lum bir bog’lanishlar yaratilgan va ular ustida ma’lum amallar bajaruvchi funksiyalardan tashkil topgan guruh. Eng sodda ma’lumotlar tuzilmasiga misol qilib massiv (array)ni ko’rsatishimiz mumkin.
Asosiy ma’lumotlar tuzilmalari
Source: Quora.com
Quyida keltirilgan ma’lumotlar tuzilmalari dasturlashda eng ko’p qo’llaniladigan tuzilmalardir. Ularga:
1. Massiv (Array) 2. Bog’langan ro’yhat (Linked List) 3. Navbat (Queue) 4. Stek (Stack) 5. Hash jadvallar (Hash tables) 6. Daraxtlar (Trees) 7. Graflar (Graph) kiradi. Biz bu bo’limda boshidagi 5 ta tuzilma bilan yaqindan tanishib, ularning kuchli va kuchsiz tomonlari va ularni qanday holatlarda ishlatish ma’qulligi haqida gaplashib o’tamiz. Qolgan ikkita tuzilma murakkabroq bo’lib ular o’z ichida yana ko’plab turlarga bo’linib ketadi. Shuning uchun ularni keyinroqqa qoldiramiz.
Bundan tashqari barcha tuzilmalarning hamma joyda ingliz tilidagi nomi ishlatilgani va ularning nomi odatda tarjima qilinmaganligi sababli keyingi o’rinlarda men ularning asosan ingliz tilidagi nomlarini ishlataman. Turli xildagi ma’lumotlar tuzilmalari nima uchun kerak?
Ma’lumotlar tuzilmalari nimaligi haqida qisman tasavvurga ega bo’ldingiz va ularning asosiy turlari bilan ham tanishib oldingiz. Lekin, shu joyga kelib agar sizda “Nima uchun ma’lumotlarning turli xil tuzilmalari kerak?” “Nima uchun bir turdagi universal ma’lumotlar tuzilmalaridan foydalanib qo’ya qolsa bo’lmaydi?” degan savol tug’ilmagan bo’lsa, bu yaxshi emas.) Keling endi shu savolga javob topishga harakat qilamiz.
Undan oldin ma’lumotlar tuzilmalari ustida asosiy bajarilishi mumkin bo’lgan amallarni ko’rib chiqaylik. Bularga ma’lumotlarni