Middle
Стек дар контексти барномаинависӣ чист ва кадом намудҳои стекҳо мавҷуданд?
sobes.tech AI
Ҷавоб аз AI
Ҳаммол (Heap) — ин минтақа дар хотираи амалиётӣ мебошад, ки барои тақсимоти динамикии хотира дар вақти иҷрои барнома истифода мешавад.
Хусусиятҳои асосӣ:
- Хотира ба таври ошкоро аз ҷониби барномасоз (ё ҷамъкунандаи партовҳо) таъин ва озод карда мешавад.
- Тартиби қатъии таъин ва озод кардани блокҳои хотира вуҷуд надорад.
- Идоракунии хотира нисбат ба стек мураккабтар аст, метавонад ба парчамшавӣ ва шикастани хотира оварда расонад.
Намудҳои ҳомил (дар контексти сохторҳои додаҳо):
- Ҳаммол иловагӣ (Binary Heap): Даромадгоҳи дарахт, ки хусусияти ҳомилро қонеъ мекунад. Барои ҳар як шабака (ғайр аз реша), арзиши он ё камтар ё бештар аз арзиши падар аст.
- Min Heap: Арзиши падар ҳамеша камтар ё баробар ба арзишҳои фарзандон аст. Элементҳои хурдтарин дар реша ҷойгир шудаанд.
- Max Heap: Арзиши падар ҳамеша бештар ё баробар ба арзишҳои фарзандон аст. Элементҳои калонтарин дар реша ҷойгир шудаанд.
- Ҳаммоли биномиалӣ (Binomial Heap): Коллексияи дарахтони биномиалӣ, ки хусусиятҳои муайянро қонеъ мекунанд. Функсияҳои пайвастшавиро самаранок дастгирӣ мекунад.
- Ҳаммоли Fibonacci (Fibonacci Heap): Сохторе, ки дар алгоритмҳо ба монанди алгоритми Дейкстра истифода мешавад. Вақтҳои амортизатсионӣ барои баъзе амалҳоро нисбат ба ҳаммоли иловагӣ самараноктар мекунад.
- Ҳаммоли Pairing: Сохтори содда бо вақти амортизатсионӣ хуб.
- Ҳаммоли Leftist: Сохторе, ки пайвастшавиро самаранок мекунад. Хусусияти муҳим "ранг" ё "дарозии роҳи нол" мебошад, ки барои пайвастшавии зуд истифода мешавад.
Ин намудҳои ҳаммол дар алгоритмҳои гуногун истифода мешаванд, масалан, дар сортинг (Heap Sort), дар иҷрои наворҳои афзалиятӣ, дар алгоритмҳои ҷустуҷӯи роҳи кӯтоҳ ва ғайра. Интихоби намудҳои махсуси ҳаммол ба амалҳои талабшуда ва самаранокии вақти онҳо вобаста аст.