Vaqt murakkabligi: O(1)
Uffff.... Chuqur xo'rsinib oling, biz asosiy mantiqiy qismni tugatdik, siz oqimni tushunishingiz va uni yaxshiroq tasavvur qilishingiz kerak.
Massivning afzalliklari
Keling, massivlarning ba'zi afzalliklarini tezda ko'rib chiqaylik:
Guruh nomini eslab qolish alohida nomlarga qaraganda osonroq, shuningdek , bir nechta o'zgaruvchilar nomlarini eslab qolishdan ko'ra massiv nomini eslab qolish osonroq.
Yuqorida biz o'qiganimiz massivlarning ajoyib xususiyati bo'lib , bu oson, massivning asosiy manzilini oshirish bizga massiv ichidagi har bir elementga birin-ketin tashrif buyurish imkonini beradi.
Massivning istalgan elementiga O(1) vaqt murakkabligidagi element indeksi (pozitsiyasi) yordamida kirish mumkin .
Massivning dinamik xotirasini taqsimlash
Xotirangizni tezda chayqatishimga ijozat bering, biz deklaratsiya, agar mavjud bo'lsa, berilgan o'lchamdagi massivning elementlari uchun xotira ajratishni anglatishini muhokama qildik.
Ammo bu statik yoki kompilyatsiya vaqti xotirasini ajratish, ya'ni kodingiz kompilyatsiya qilinayotganda massiv elementiga xotira ajratiladi.
Endi biz xotirani ish vaqtida ajrata olamizmi, ha , biz bir nechta kutubxonalardan birining malloc va hokazo funksiyalaridan foydalana olamizmi? Men hammasini qaytadan yozganimni angladim, shunchaki nusxa ko‘chirish-joylashtirish mumkin edi. Biz tushunishimiz kerak bo'lgan narsa, birinchi navbatda, nima uchun bu dinamik xotira taqsimoti. Kod kompilyator tomonidan kompilyatsiya qilinmaguncha, biz massivning aniq hajmiga ishonchimiz komil bo'lmasa , biz e'lon qilgan massivning o'lchami talab qilinganidan kichikroq yoki hatto talab qilinganidan kattaroq bo'lishi mumkin. Bunday hollarda statik xotira ajratish afzal ko'rilmaydi.
Kutubxona nima ekanligini tushunishdan boshlaylik, u yuqorida bir nechta yozganimizdek, boshqa dasturlar (koddan iborat) foydalanishi mumkin bo'lgan oldindan kompilyatsiya qilingan modullar to'plamidir (ob'ekt formatida saqlanadi).
Kutubxona funksiyalari kutubxona boʻlgan joyda birga saqlanadigan oʻrnatilgan funksiyalardir.
Har bir funktsiyaning o'ziga xos qobiliyati bor, xuddi bizning kokteyl ichimliklarimiz kabi juda o'ziga xos roli bor, kechirasiz , men hamma narsani bizning ajoyib barimiz bilan solishtirmayman.
Bu funksiyalardan foydalanish uchun yana bir narsa, biz uni sarlavha fayllari yordamida import qilishimiz kerak, xuddi biz har bir kod parchasining yuqori qismiga qo'yganimizdek ( #include ; stdio.h ko'p sarlavha fayllaridan biridir).
Bizda sarlavha fayli ostida aniqlangan to'rtta kutubxona funksiyasi mavjud bo'lib, ular xotirani dinamik ravishda ajratish uchun ishlatilishi mumkin:
Do'stlaringiz bilan baham: |