Fenwick daraxti
Mavzu: “Fenwick daraxti” MUNDARIJA KIRISH ........................................................................................................... 3 1.1.Daraxt tushunchasi. ............................................................................. 5 B daraxtda element izlash .............................................................................. 13 void btree_lookup(struct btree *tree, int key, ................................................ 13 struct btree **node, int *index) ..................................................................... 13 { ..................................................................................................................... 13 int i; ................................................................................................................ 13 for (i = 0; i < tree->nkeys && key > tree->key[i]; ) { ................................... 13 i++; ................................................................................................................ 13 } ..................................................................................................................... 13 if (i < tree->nkeys && key == tree->key[i]) { .............................................. 13 *node = tree; .................................................................................................. 13 *index = i; ...................................................................................................... 13 return; ............................................................................................................ 13 } ..................................................................................................................... 13 if (!tree->leaf) { ............................................................................................. 13 /* Disk read tree->child[i] */ ......................................................................... 13 btree_lookup(tree, key, node, index); ............................................................ 13 } else { ........................................................................................................... 13 *node = NULL; } .......................................................................................... 13 II.BOB. DARAXTNING STRUKTURALARI VA DASTURI. .................. 14 2.2. Fenwick daraxti dasturiy tahlili. ....................................................... 17 Ikkilik indeksli daraxt (Fenwick Tree) massivning prefiks yig'indisini tezda hisoblash uchun ishlatilishi mumkin bo'lgan samarali ma'lumotlar strukturasidir.Agar massivda mavjud qiymatlar o'zgaruvchan bo'lsa. m . e .qiymatlarni Fenwick daraxti yordamida o'zgartirish mumkin, bu juda foydali.Odatda, agar biz massivdagi 0 dan n gacha bo'lgan barcha raqamlarning yig'indisini hisoblamoqchi bo'lsak, biz indeks-0 dan boshlab har bir elementni ko'rib chiqamiz va indeks-n ga qadar barcha elementlarni qo'shishni davom ettiramiz. Bu O(n) vaqtini oladi va o'lcham juda katta bo'lsa va biz ko'p so'rovlarni bajarishimiz kerak bo'lganda samarali emas.Buning bir yechimi prefiks sum massividan foydalanishdir. Prefiks yig'indisi massivi oldindan hisoblangan massiv bo'lib, unda har qanday indeksdagi qiymat asl massivdagi 0 dan ushbu indeksgacha bo'lgan barcha raqamlar yig'indisiga teng bo'ladi. Agar bizdan x va y o'rtasidagi indekslarning umumiy yig'indisini olishni so'ragan so'rovni olsak, biz x-1 indeksidagi prefiks summasini y indeksidagi prefiks yig'indisidan ayirishimiz kerak, bu bizga x indekslaridagi elementlarning yig'indisini beradi. y ga. Bu faqat 2 ta operatsiyani oladi va shuning uchun biz O (1) vaqtida diapazon summasini
olishimiz mumkin. Ammo diqqatga sazovor narsa shundaki, agar indeksdagi qiymat io'zgarsa, kattaroq indekslar uchun barcha prefiks summalari io'zgaradi va bu O(N) vaqtini oladi.Xulosa qilib aytadigan bo'lsak, birinchi yondashuv O(N)har qanday berilgan indekslar orasidagi barcha elementlarning yig'indisini hisoblash uchun vaqt talab etadi, ammo O(1)har qanday elementni yangilash uchun vaqt kerak bo'ladi. Prefiks yig'indisidan foydalangan holda ikkinchi yondashuvda, O(1)har qanday berilgan indekslar orasidagi barcha elementlarning yig'indisini hisoblash uchun vaqt kerak bo'ladi, lekin O(N)agar dastlabki massivdagi biron bir element o'zgargan bo'lsa, prefiks yig'indisi qatorini yangilash uchun vaqt kerak bo'ladi.Endi savol shundaki, ikkalamiz o'rtasida muvozanat bo'lishi mumkinmi? ya'ni, har qanday elementni yangilash vaqtida o'rtacha vaqt murakkabligi va prefiks summalarini hisoblash uchun o'rtacha vaqt murakkabligi bormi? Ikkilik indeksli daraxt yoki Fenwick daraxti bu savolning bir yechimidir. 21 ADABIYOTLAR RO’YXATI ...................................................................... 22 ILOVALAR ................................................................................................... 23 ILOVA 1. Modul N1 boshlang’ich kodi. ............................................... 23
KIRISH Mavzuning dolzarbligi . Bugungi kunda ma‘lumotlar oqimining ko‘pligi tufayli ularni qisqa vaqt ichida qayta ishlash muommosi ham ortib bormoqda. Hozirgi vaqtda axborot- kommunikasiya vositalari barcha turdagi tashkilot va muassasalarga shiddat bilan kirib kelmoqda. Axborotlarning haddan tashqari ko‘pligi bu axborotlarni saqlashda, qayta ishlashda, hamda har xil turdagi tizimlarni yaratish, ulardan keng foydalanishni va axborot tizimlari yaratishni talab qiladi. O‘zbekiston Respublikasi Prezidentining 2017 yil 7 fevraldagi PF-4947-son Farmoni bilan tasdiqlangan 2017-2021 yillarda O‘zbekiston Respublikasini rivojlantirishning beshta ustuvor yo‘nalishi bo‘yicha harakatlar strategiyasi mamlakatning davlat va jamiyat rivojlanishi istiqbolini strategik rejalashtirish tizimiga sifat jihatdan yangi yondashuvlarni boshlab berdi[1]. Unda belgilangan vazifalar sirasida ta‘lim va fan sohasini rivojlantirish ham aloxida ko‘zda tutilgan. O‘zbekiston Respublikasi birinchi Prezidentining 2012 yil 21 martdagi “Zamonaviy axborot-kommunikasiya texnologiyalarini yanada joriy etish va rivojlantirish chora-tadbirlari to‘g‘risida”gi PQ-1730 Qarori hamda “O‘zbekiston Respublikasida —Elektron ta‘lim milliy tarmog‘ini yaratish” investision loyihasini amalga oshirish chora-tadbirlari to‘g‘risida” gi PQ-1740 Qarori va me‘yoriy hujjatlar asosida algoritmik ta‘minot ishlab chiqish va joriy etish keng ko‘lamli hisoblanadi. Barcha tashkilot va muassasalarda avtomatlashtirilgan tizimlar yaratish ulardan keng ko‘lamda foydalanish uchun algoritmlash tillarini o‘rni katta hisoblanadi. Axborot tizimlari axborotni to‘plash, saqlash va qayta ishlash uchun, keng imkoniyatli maqsadlarda samarali foydalanish uchun xizmat qiladi. Zamonaviy axborotlashtirish tizimi, ma‘lumotlar integratsiyasi konsepsiyasiga asoslangan katta hajmdagi ma‘lumotlarni saqlash bilan tavsiflanadi va ko‘p sondagi foydalanuvchilarning turli xildagi talablariga javob berishi kerak bo‘ladi. Axborot tizimi va axborot texnologiyalarining avtomatlashtirilgan elementlarini qo‘llash va avtomatlashtirish asosida yangi axborot texnologiyasini yaratish avtomatlashtirish tizimlarini loyihalashtiruvchilarning asosiy vazifalaridan biri hisoblanadi
3 Fenwick daraxti yoki ikkilik indeksli daraxt (BIT) - bu elementlarni samarali yangilash va raqamlar jadvalidagi prefiks summalarini hisoblash mumkin bo'lgan ma'lumotlar tuzilmasi . Ushbu tuzilma 1989 yilda Boris Ryabko tomonidan taklif qilingan. 1992 yilda nashr etilgan keyingi o'zgartirish bilan. Keyinchalik u 1994 yilgi maqolasida ushbu tuzilmani tasvirlab bergan Piter Fenvik nomidan Fenvik daraxti nomi bilan mashhur bo'ldi . Yassi raqamlar qatori bilan solishtirganda, Fenwick daraxti ikkita operatsiya o'rtasida ancha yaxshi muvozanatga erishadi: elementlarni yangilash va prefiks yig'indisini hisoblash. ning tekis massivi raqamlar elementlarni yoki prefiks summalarini saqlashi mumkin. Birinchi holda, prefiks summalarini hisoblash chiziqli vaqtni talab qiladi; ikkinchi holda, massiv elementlarini yangilash chiziqli vaqtni talab qiladi (har ikkala holatda ham boshqa operatsiya doimiy vaqtda bajarilishi mumkin). Fenwick daraxtlari ikkala operatsiyani ham bajarishga imkon beradi vaqt. Bunga raqamlarn i daraxt shaklida ifodalash orqali erishiladi daraxtdagi har bir tugunning qiymati massivning asosiy (shu jumladan) indeksidan tugun indeksi (eksklyuziv)gacha bo'lgan prefiks yig'indisi bo'lgan tugunlar. Daraxtning o'zi yashirin va massiv sifatida saqlanishi mumkin raqamlar, massivdan yashirin ildiz tugunlari olib tashlangan. Daraxt tuzilishi elementni qidirish, elementni yangilash, prefiks yig'indisi va diapazon yig'indisi operatsiyalarini faqat foydalanishga imkon beradi. Kurs ishining maqsadi: Fenwick daraxti mavzusini o’rganish Kurs ishining tuzilishi : Kurs ish kirish, 2 bob, 5 bo‘lim, umumiy xulosalar va tavsiyalar, foydalanilgan adabiyotlar ro‘yhatidan iborat bo‘lib, jami 22 sahifani tashkil qiladi. 4
I Bob. Daraxt tushunchasi.Daraxtlar grafning xususiy holati. 1.1.Daraxt tushunchasi. Daraxt - bu bog langan asiklik graf, ya’ni sikllar yo q va uchlar juftligi orasidaʻ ʻ bitta yo l bor (29-rasm). Kirishning nol darajasiga ega bo lgan uch daraxtning ildizi, ʻ ʻ chiqish nol darajaga ega tugunlar esa barglar deb nomlanadi. Daraxtlar quyidagi belgilari bilan tavsiflanadi:daraxtda ildiz deb ataluvchi shunday yagona element mavjudki, unga boshqa elementlardan murojaat mavjud emas; daraxt ixtiyoriy elementga murojaat (element qiymatini olish) chekli sondagi ketma-ket murojaatlar yoki ko‘rsatkichlardan o‘tib borish orqali amalga oshiriladi; 1-rasm.Yo’naltirilgan daraxt. Yo naltirilgan (oriyentirlangan) daraxt - bu faqat bitta vertikal kirish nol darajasiga ʻ ega bo lgan (boshqa yoylar unga olib kelmaydigan), boshqa uchlarning kirish ʻ