MA’LUMOT TUZILMALARI (SERIES, DADAFRAME)
“ MA ’ LUMOT TUZILMALARI ( SERIES , DADAFRAME )”
Reja 1. Asosiy tushuncha va ta’riflar. 2. Ma’lumotlarni tasvirlash ( ifodalash ) bosqichlari . 3. Ma’lumotlar tuzilmasini klassifikatsiya qilish . 4. Ma’lumotlarni toifalari. Asosiy tushuncha va ta’riflar Ma’lumotlar tuzilmasi bu xotirada tashkil etiladigan elementlar yig’indisi bo’lib, ular ustida dastur yordamida amallar bajariladi. Ma’lumotlar tuzilmasi – bu bironta toifaga tegishli bo’lgan va o’zaro ma’lum munosabatga ega bo’lgan elementlar to’plamiga aytiladi. Ma’lumot – bironta qiymat yoki qiymatlar to’plami hisoblanadi.Misol uchun bu bironta eksperiment natijalari, yoki talabalarning imtixon ballari bo’lishi mumkin. Ma’lumotlar tuzilmasi elementi – bu qiymatlar to’plamining bir bo’lagi hisoblanadi. Tuzilma elementi – qiymatlar jamlanmasi bo’lib, misol uchun talabalarning ismi, sharifi, yoshi har bir fandan olgan bahosi va x.k. larni keltirish mumkin. Elementlar 2 taga bo’linishi mumkin: - Element sifatida ma’lumotlar guruhi olib qaraladi. Bunda e;lementlar yana qism bo’lak;arga bo’linishi mumkin. Masalan, ota-onalar maydoni talabalarning ota va onalari xaqida ma’lumot saqlaydigan alohida maydonlardan tashkil topadi. - Elementar, ya’ni bo’linmas, bunda element qism bo’laklarga ajratilmaydi. Ob’ekt – bu xususiyatlar va attributlariga ega bo’lgan va bu xususiyatlarga qiymat qabul qilishi mumkin bo’lgan tuzilma hisoblanadi. Masalan, talaba bu ob’ekt deb qaralishi mumkin tuzilma. Maydon – bu ob’ektlarning attributlari yoki xususiyatlarini ifodalovchi 2
tushuncha bo’lib, sonli yoki son bo’lmagan qiymatlarni o’zlashtirishi mumkin. Yozuv – bu bironta ob’ektga tegishli turli toifadagi maydonlar to’plamidir. Fayl - bu bir-biriga bog’liq bo’lgan yozuvlar to’plamidir. Masalan, barcha talabalar xaqidagi yozuvlarni o’z ichiga olishi mumkin, Kalit – bu yozuvdagi maydon bo’lib, aynan shu yozuvni boshqa yozuvlardan ajratib turishga xizmat qiladi, uning qiymati boshqa yozuvlarda takrorlanmas hisoblanadi. Ba’zida bittadan ko’p maydonlar qiymatlari elementlararo betakror bo’lishi mumkin va bunga karrali kalit deyiladi. Ko’pincha asosiy kalit hisoblanadigan bitta maydon ma’lumoti ishlatiladi va u boshlang’ich kalit deyiladi, qolganlari esa alternativ kalit deyiladi. Ba’zida esa yozuvlaning yagona qiymatlatli kalit maydonni yo’qligi sababli kalit sifatida bir nechta maydonlar olinadi va ularga tarkibli kalit deyiladi. Eng yomon holatda, ba’zan shunaqa bo’lishi mumkinki, bironta maydon kalit bo’la olmasa, xar bit elementga qo’shimcha, qiymati yagona bo’lgan kalit maydon kiritiladi. Axborot. Ko’pincha ma’lumot va axborot tushunchalarini bir xil ma’noda ishlatishadi. Lekin aslida esa axborot bu ma’lumotga qaraganda kengroq tushunchadir.Axborot bu qayta ishlangan ma’lumotdir.Ma’lumot esa qiymatlar yig’indisidir, yani bironta yakuniy xulosa bermaydi.Qaror qabul qilishda hali foyda bermaydi. Ma’lum qoidalar asosida qayta ishlangach, yangi hosil qilingan ma’lumotlar axborotga aylanadi va qaror qabul qilishda foydali hisoblanadi. Ma’lumotlar toifasi – qandaydir qiymatlar yig’indisi bo’lib, ular ustida ma’lum amallar o’rinli bo’ladi. Ma’lumotlar toifalari dasturda oldindan aniqlangan yoki foydalanuvchi tomonidan aniqlangan bo’lishi mumkin va quyidagi aspektlarni nazarda tutadi. 1. Qiymatlar to’plami 2. Amallar to’plami Misol uchun int - butun toifalar va ustida bajariladigan arifmetik amallar(+,-,*,/). Ma’lumotlar toifalari 3 turga ajratiladi: 1. Primitiv (sozlangan) toifalar (ma’lumotlarning sodda toifalari). Oldindan ma’lum bo’ladigan, sozlangan toifalar deb ham ataladigan toifalar bo’lib, 3
turli dasturlash tillarida turlicha bo’lishi mumkin. Masalan, C++ tilida int (long, short,… ), float(double), char,… 2. Foydalanuvchi tomonidan aniqlanadigan toifalar , qachonki mavjud sozlangan toifalar qo’yilgan masalani yechishga yetarli bo’lmasa qo’llaniladi. 3. Abstrakt toifalar . Ma’lumotlar toifalarining mantiqiy xususiyatlarini aniqlashda foydali instrument hisoblanadi. “Abstrakt toifa” atamasi bazaviy matematik tushunchasiga bog’liq. Ushbu toifalardagi ma’lumotlar qisman apparat va dasturiy ta’minot yordamida tuzilma sifatida fizik amalga oshirilishi mumkin. Biz abstrakt toifalarni matematik tushuncha sifatida aniqlaganimizda, muhit va vaqtiy munosabatlarni e’tiborga olmaymiz. Bular amalga oshirish masalalari hisoblanadi. Ma’lumotlar tuzilmasi Ma’lumotlar turli yo’lar asosida tashkil etilishi mumkin, mantiqiy yoki matematik modelni tashkil etilishi ma’lumotlar tuzilmasi deyiladi. Konkret bir ma’lumotlar tuzilmasini tanlash quyidagilarga bog’liq: - Real voqe’likda elementlararo munosabatni yaqqol ifodalay olishi kerak; - U shunday soda tuzilishi kerakki, zarur bo’lganda ustida samarali amal bajarish mumkin bo’lsin. Ma’lumotlar tuzilmasini o’rganish quyidagilardan iborat: - Tuzilmani mantiqiy ifodalash; - Tuzilmani fiizik amalga oshirish; - Tuzilmani sifatiy taxlili, ya’ni elementlarni saqlash uchun qancha xotira xajmi sarflanishini aniqlash (xotira sarfi) va qayta ishlashga ketadigan vaqtni (vaqt sarfi) xisoblash nazarda tutiladi. Vaqt sarfi. Tuzilma ustida amal bajarish algoritmini bajarilish vaqtini hisoblash ko’zda tutiladi.Buni hisoblashda mashxur katta “O” notatsiya tushunchasi ishlatiladi. Xotira sarfi. Kirish ma’lumotlarini inobatga olmagan xolda, ishlatilayotgan algoritm uchun xotiradan talab qilinadigan qo’shimcha joy sarfi tushuniladi.Bunda 4
xam katta “O” notatsiyasi qo‘llaniladi. Vaqt va xotira sarfini hisoblash uchun quyidagi yondashuvlar mavjud: - Katta O notatsiya . f(x)=O(g(n)) deb belgilanadi, faqat va faqat shunday musbat c va m konstanta mavjud bo’lib, f(n)<=c*g(n) tengsizlik o’rinli bo’lsa, barcha n, n>=m holatlarda. Masalan, ushbu funksiyani 3n+2=O(n)deb olish mumkin, chunki 3n+2<=4n, n>=2 tengsizlik o’rinli. Ushbu funksiyani6*2 n +n 2 =O(2 n ) deb olish mumkin, chunki 6*2 n +n 2 <=7*2 n ifoda o‘rinli,barcha n>=4 larda. O(1) deb hisoblash vaqti o’zgarmas bo’lgan holatni belgilaymiz. O(n 2 ) ni kvadratik, O(n 3 ) ni kubik, O(2 n ) ni eksponensial deb ataladi. Agar algoritmni bajarilish vaqti O(log n) bo‘lsa, O(n) ga qaraganda tezkor algoritm deb hisoblanadi. - Omega notatsiya . f(x) = Ω(g(n)) deb belgilanadi, faqat va faqat shunday musbat c va m konstanta mavjud bo’lib, f(n)<=c*g(n) tengsizlik o’rinli bo’lsa, barcha n, n>=m holatlarda. Masalan, 3n+2=Ω(n) deb belgilash mumkin, chunki 3n+2>=3n, n>=1 tengsizlik o’rinli.6*2 n +n 2 =Ω (2 n ) deb olish mumkin, chunki 6*2 n +n 2 >=6*2 n ifoda o‘rinli,barcha n>=1 larda. - Teta notatsiya . f(x) = θ (g(n)) deb belgilanadi, faqat va faqat shunday musbat c va m konstanta mavjud bo’lib, c*g(n)<= f(n)<=c2*g(n) tengsizlik o’rinli bo’lsa, barcha n, n>=m holatlarda. Masalan, 3n+2= θ (n) deb belgilash mumkin, chunki 3n+2>=3n, n>=1va 3n+2<=4nbarcha n>=2 da tengsizlik o’rinli. 6*2 n +n 2 =θ (2 n ) deb olish mumkin, Algoritmlar samaradorligini hisoblash Algoritmlar samaradorligini hisoblashda kirish ma’lumotini qanday tanlash ko’rilayotgan algoritmni bajarilishiga yaxshigina ta’sir ko’rsatadi. Masalan, agar kirish ma’lumotlari allaqachon saralangan bo‘lsa, ba’zi saralash algoritmlari juda yaxshi ishlaydi, ayrimlari ancha past samaradorlik bilan ishlashi mumkin. Agar kirish ma’lumotlari saralanmagan, tartibsiz bo’lsa, buni aksi bo’lishi mumkin. 5