Middle
Dasturlash kontekstida to'plam nima va qanday to'plam turlari mavjud?
sobes.tech AI
AIdan javob
Heap — bu erkin xotira bo'sh joyi bo'lib, dastur bajarilishi davomida dinamik ravishda xotira taqsimlash uchun ishlatiladi.
Asosiy xususiyatlar:
- Xotira aniq dasturchi (yoki axlat to'plovchi) tomonidan ajratiladi va bo'shatiladi.
- Xotira bloklarini ajratish/bo'shatish uchun qat'iy ketma-ketlik yo'q.
- Xotira boshqaruvi stekdan murakkabroq bo'lib, parchalanish va xotira oqib ketishiga olib kelishi mumkin.
Ma'lumotlar tuzilmasi kontekstida heap turlari:
- Ikkiyli heap (Binary Heap): Heap xususiyatini qanoatlantiradigan daraxt. Har qanday tugun (ildizdan tashqari) uning qiymati ota-ona qiymatidan kichik yoki katta.
- Min Heap: Ota-ona qiymati har doim bolalar qiymatidan kichik yoki teng. Eng kichik element ildizda joylashgan.
- Max Heap: Ota-ona qiymati har doim bolalar qiymatidan katta yoki teng. Eng katta element ildizda joylashgan.
- Binomiy heap (Binomial Heap): Muayyan xususiyatlarni qanoatlantiradigan binomiy daraxtlar to'plami. Samarali birlashtirish operatsiyalarini qo'llab-quvvatlaydi.
- Fibonacci heap: Dijkstra algoritmi kabi algoritmlarda ishlatiladigan ma'lumotlar tuzilmasi. Ba'zi operatsiyalar uchun samaraliroq amortizatsiya vaqtlarini ta'minlaydi.
- Pairing heap: Oddiy amalga oshirish uchun ma'lumotlar tuzilmasi, yaxshi amortizatsiya vaqtlariga ega.
- Leftist heap: Samarali birlashtirishni osonlashtiradigan ma'lumotlar tuzilmasi. Muhim xususiyat "rango" yoki "nol uzunlikdagi yo'l" bo'lib, tez birlashtirish uchun ishlatiladi.
Ushbu heap turlari turli algoritmlarda, masalan, tartiblash (Heap Sort), prioritetli navbatlarni amalga oshirish, eng qisqa yo'lni topish algoritmlari va boshqalarda qo'llaniladi. Maxsus heap turini tanlash talab qilingan operatsiyalar va ularning vaqt samaradorligiga bog'liq.