O‘lchamini o‘zgartirish: Agar massivning o‘ng tomonida nol/nol ma’lumotlar (siz qo‘shgan elementdan tashqari) bo‘lsa, ya’ni uning foydalanilmagan xotirasi bo‘lsa, shrinkSize() usuli qo‘shimcha xotirani bo‘shatishi mumkin. Qachonki, barcha bo'sh joy iste'mol qilinsa va qo'shimcha element qo'shilishi kerak bo'lsa, asosiy o'lchamli massiv hajmini oshirishi kerak. Odatda o'lchamini o'zgartirish qimmatga tushadi, chunki biz nihoyat elementimizni qo'shishimizdan oldin kattaroq massiv ajratgan bo’lamiz. Statik massiv va dinamik massiv o'rtasidagi farq Statik massiv va dinamik massiv o'rtasidagi farq
Static massiv
|
Dynamic massiv
|
Statik massivlarga kompilyatsiya vaqtida xotira ajratiladi
|
Dinamik massiv ish vaqtida joylashgan xotira ajratiladi.
|
Statik massivning o'lchami belgilangan.
|
Dinamik massivning o'lchami belgilangan.
|
U stek xotira maydonida joylashgan.
|
U yig‘ilgan xotira maydonida joylashgan.
|
int massivi[10]; // 10 o'lchamli massiv
|
int* array = new int[10];
|
Ma'lumotlarning dinamik tuzilishi
- Dinamik ma'lumotlar strukturasida strukturaning o'lchami qat'iy emas va ular ustida bajarilgan operatsiyalar davomida o'zgartirilishi mumkin. Dinamik ma'lumotlar tuzilmalari ish vaqtida ma'lumotlar tuzilmalarini o'zgartirishni osonlashtirish uchun mo'ljallangan.
Raqobatli dasturlashda dinamik ma'lumotlar tuzilmasidan foydalanish. Raqobatchi dasturlashda xotira chegarasidagi cheklovlar unchalik katta emas va biz xotira chegarasidan oshib keta olmaymiz. Cheklovlarning yuqori qiymatini hisobga olgan holda, biz bunday o'lchamdagi statik ma'lumotlar strukturasini ajrata olmaymiz, shuning uchun Dinamik ma'lumotlar tuzilmalari foydali bo'lishi mumkin.
Do'stlaringiz bilan baham: |