logo
post image
user image

DIGITAL GENERATION

Muallif

Dec. 25, 2024

205

Time Complexity va Space Complexity haqida tushuncha

Boshqalar

Dasturlashda har bir algoritm uchun tezkorlik va xotira tejamkorligi muhim ahamiyatga ega. Bu ikki tushunchani sodda va qiziqarli usulda tushuntirish qiyin lekin men harakat qilib koʻrdim.

Big-O notation

Dasturlashni o‘rganishda yoki tajribali dasturchi sifatida ishlash davomida algoritmning samaradorligini baholash juda muhim. Samaradorlikni ikki asosiy o‘lchov bilan aniqlashadi: Time Complexity (vaqt murakkabligi) va Space Complexity (xotira murakkabligi). Bu maqolada ushbu tushunchalarni real hayotiy misollar asosida oddiy til bilan tushuntirib berishga harakat qilaman.

Do‘kondan mahsulot qidirish

Tasavvur qiling, siz katta bir do‘konga kirdingiz va kerakli mahsulotni topishingiz kerak. Algoritmlarning turli murakkablik sinflarini shu jarayon orqali tushunishga harakat qilamiz.

1. Time Complexity (Vaqt murakkabligi)

Bu algoritmning kirish ma’lumotlari (n) hajmi oshgan sari, uni bajarish uchun qancha vaqt ketishini o‘lchaydi. Keling, do‘kondan mahsulot qidirishni turli murakkablik darajalari orqali ko‘rib chiqamiz:

  1. O(1) — Tezkor qidiruv Siz do‘konga kirdingiz va mahsulotni darhol oldingiz. Masalan, non har doim bir joyda turadi va siz to‘g‘ridan-to‘g‘ri o‘sha joyga borasiz. Bu vaqtni o‘zgarmas darajada saqlaydi, ya’ni kirish ma’lumotlarining hajmi qancha katta bo‘lmasin, vaqt bir xil bo‘ladi.
  2. O(log n) — Yarmi-yarmi bo‘lib qidirish Siz mahsulot ro‘yxatini ikki qismga bo‘lasiz va qaysi yarmida mahsulot borligini aniqlaysiz. Har bir qadamda izlanayotgan qism hajmi yarmiga kamayadi. Masalan, kitobdan kerakli bobni binary search yordamida topish. Do‘kon hajmi qancha katta bo‘lsa ham, siz tezda kerakli mahsulotga yetasiz.
  3. O(n) — Bitta-bitta qidirish Har bir javonni boshidan oxirigacha birma-bir tekshirasiz. Masalan, siz mahsulotni qayerda joylashganini bilmasangiz do‘kondagi barcha javonlarni ko‘rib chiqasiz. Do‘kon kattalashgani sari vaqt ham shunga mos ravishda oshadi.
  4. O(n²) — Har bir mahsulotni boshqa mahsulot bilan solishtirish Siz har bir javondan mahsulotni olib, uni qolgan mahsulotlar bilan taqqoslaysiz. Masalan, do‘kondagi barcha mahsulotlarni bir-biriga bog‘liq holda o‘rganish. Bu vaqtni sezilarli darajada oshiradi va katta hajmdagi ma’lumotlar uchun qiyinlik tug‘diradi.
  5. O(2ⁿ) — Eksponensial vaqt Siz har bir mahsulotni tekshirib, ularning har bir kombinatsiyasini tahlil qilasiz. Masalan, do‘kondagi barcha mahsulotlardan har xil taom tayyorlash imkoniyatlarini hisoblash. Bu juda ko‘p vaqt talab qiladi va amaliy jihatdan deyarli foydasiz.

2. Space Complexity (Xotira murakkabligi)

Bu algoritmning bajarilishi uchun zarur bo‘lgan xotira hajmini o‘lchaydi. Keling, do‘kondagi mahsulot ro‘yxatini saqlashni ko‘rib chiqamiz:

  1. O(1) — Doimiy xotira Siz faqat mahsulotlar sonini yozib qo‘yasiz: “Do‘konda 100 ta mahsulot bor.” Kirish ma’lumotlari hajmi qanday bo‘lmasin, xotira bir xil bo‘lib qoladi.
  2. O(n) — Linear xotira Siz har bir mahsulotni alohida yozib chiqasiz: “1. Non, 2. Shakar, 3. Tuz…” Kirish ma’lumotlari oshgani sari kerakli xotira ham oshadi.
  3. O(n²) — Kvadratik xotira Har bir mahsulot haqida batafsil ma’lumot yozasiz va har bir mahsulotning boshqa mahsulotlar bilan aloqasini ham qayd etasiz. Masalan, mahsulotlarning narxi, sifati, yetkazib beruvchisi va boshqa jihatlarini yozish. Bu juda katta hajmdagi xotirani talab qiladi.

Real hayotda qo’llash:

  • Time Complexity dasturchilarga algoritmlarning qanchalik tez ishlashini tushunishga yordam beradi. Masalan, katta hajmdagi ma’lumotlarni saralash yoki qidirishda samaradorlikni ta’minlash uchun.
  • Space Complexity esa tizim xotirasidan oqilona foydalanishni rejalashtirishda muhimdir. Masalan, resurslar cheklangan joyda mobil ilovalar ishlab chiqishda.

Xulosa

Time Complexity va Space Complexity dastur samaradorligini baholashda ikki asosiy kalit mezondir. Ularni to‘g‘ri tushunish orqali siz algoritmlarni samarali loyihalab, katta hajmdagi ma’lumotlarni tez va resurslarni tejab qayta ishlashni ta’minlashingiz mumkin.

P/s: Endi mabodo intervyuda bu mavzuda savol berib qolishsa qanday javob berishni bilasiz.

Izohlar