Biz abstrakt toifalarni matematik tushuncha sifatida aniqlaganimizda, muhit va vaqtiy munosabatlarni e’tiborga olmaymiz. Bular amalga oshirish masalalari hisoblanadi. 2. Ma’lumotlar tuzilmasi 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 sodda 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. Ma’lumotlar tuzilmasi 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 funksiyani 6*2n+n=O(2n) deb olish mumkin, chunki 6*2n+n2 <=7*2n ifoda o‘rinli, barcha n>=4 larda. O(1) deb hisoblash vaqti o’zgarmas bo’lgan holatni belgilaymiz. O(n2) ni kvadratik, O(n3) ni kubik, O(2n) ni eksponensial deb ataladi. Agar algoritmni bajarilish vaqti O(log n) bo‘lsa, O(n) ga qaraganda tezkor algoritm deb hisoblanadi. Ma’lumotlar tuzilmasi 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 xam katta “O” notatsiyasi qo‘llaniladi. Ma’lumotlar tuzilmasi 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 funksiyani 6*2n+n=O(2n) deb olish mumkin, chunki 6*2n+n2 <=7*2n ifoda o‘rinli, barcha n>=4 larda. O(1) deb hisoblash vaqti o’zgarmas bo’lgan holatni belgilaymiz. O(n2) ni kvadratik, O(n3) ni kubik, O(2n) ni eksponensial deb ataladi. Agar algoritmni bajarilish vaqti O(log n) bo‘lsa, O(n) ga qaraganda tezkor algoritm deb hisoblanadi. Ma’lumotlar tuzilmasi 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*2n+n2= Ω (2n) deb olish mumkin, chunki 6*2n+n2 >=6*2n 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>=1 va 3n+2<=4n barcha n>=2 da tengsizlik o’rinli. 6*2n+n2= θ (2n) deb olish mumkin. Ma’lumotlarni tasvirlash bosqichlari Oddiy ma’lumotlar tuzilmasini ba’zan ma’lumotlar toifalari deb ham ataladi. Odatda, ma’lumotlarni tasniflash quyidagi ko‘rinishdagi bosqichlarga ajratiladi: 1) abstrakt (matematik) bosqich; 2) mantiqiy bosqich; 3) fizik (jismoniy) bosqich.
Do'stlaringiz bilan baham: |