Massivning xossalari
Massivda elementlar asosiy xotirada keyingi xotira joylarida saqlanadi. Massiv nomi massivning asosiy manzilini ifodalovchi ko‘rsatkich o‘zgaruvchisidir.
Quyidagi rasmda massivning asosiy manzili, ya'ni massivning birinchi elementining manzili 100 bo'lsin va bitta int o'zgaruvchisi 4 bayt xotirani oladi (bu kompilyatorga bog'liq), shuning uchun keyingi element 104 da mavjud deylik .
Massivning oxirgi elementi 4-joyda mavjud, chunki massiv 5 o‘lchamli, lekin xotiradagi indeks 0 dan boshlanadi, shuning uchun massivning oxirgi elementi indeksi har doim massiv o‘lchamidan bir qisqa bo‘ladi (arraySize-1). ).
Massiv bilan bajariladigan asosiy amallar
Massivdagi amallar uning xususiyatlariga o'xshaydi, Massiv uning ichidagi elementlar bilan qila oladigan narsa massivlarning ishlashidir. Massivlarda 5 ta asosiy amal mavjud:
Traverse(o’tish) : Traversing so'zma-so'z ma'noda hudud bo'ylab sayohat qilishni anglatadi va dasturlash tili nuqtai nazaridan bu massivda tsiklni ishga tushirish va kerakli operatsiyani bajarishni anglatadi.
Insertion (qo'shish) : massivdagi berilgan pozitsiyaga (indeks) massiv ichiga element qo'shish.
Deletion (o’chirish) : Berilgan pozitsiyada (indeks) massivdan istalgan elementni olib tashlash.
Search (qidiruv) : massiv elementini element indeksi yoki qiymati bo‘yicha qidiradi.
Update (yangilash) : Berilgan pozitsiyadagi (indeks) elementni yangilaydi.
Eslatma: C da, massiv o'lcham bilan ishga tushirilsa, u o'z elementlariga axlat qiymatlarini belgilaydi.
1. Traverse(o’tish)
Yuqorida biz hudud bo'ylab sayohat qilish vositalarini ( so'zma -so'z) o'qiganimizdek, bu erda biz sayohatni massiv ichida mavjud bo'lgan elementlar bo'ylab sayohat qilishni nazarda tutamiz , raqamlar qatori bo'lishi mumkin (masalan, buyurtma qilingan kokteyllar soni).
Shunday qilib tushunaylik, biz Traverse operatsiyasidan foydalanganda kompilyator massivning elementlarini birma-bir o'qiydi va agar biz funktsiyani bajarsak, masalan, chop etsak, elementlarni birma-bir ko'rsatamiz.
Endi bizda beshta stolli bar bor, u mahalliy mexnatni taqdim etadi, bizda stollar ketma-ket joylashtirilgan va buyurtmalar barmenga bir xil tartibda ko'rsatiladi, shunda u ofitsiantga xizmat qilish uchun bir xil tartibda ichimliklar tayyorlaydi va tartibga soladi. tegishli jadvallar.
#include
int main() {
int noOfDrinks[] = {5,2,3,5,7};
printf("Tables Number of orders for drinks :\n\n");
for(int i = 0; i<5; i++) {
printf(" %d \t %d \n", i+1, noOfDrinks[i]);
}
}
Endi noOfDrinks buyurtmalar sonini ifodalaydi, deylik, birinchi element birinchi stol uchun tartibni bildiradi, ya'ni 1 - jadvalda buyurtma qilingan 5 ta kokteyl va hokazo.
Keling, uning vaqt murakkabligi haqida gapiraylik, har bir jarayonning murakkablik omili bor, ma'lumotlar tuzilishi va algoritmida bu omillar vaqt yoki makon (hisoblash xotirasi) bo'lishi mumkin, har bir vazifa berilgan ma'lumotlarga qarab bajarilishi uchun ma'lum vaqt va makonni oladi.
Shuningdek, vazifani bajarish samaradorligi vazifani bajarish uchun zarur bo'lgan operatsiyalar soniga bog'liq.
n ta elementdan iborat massivni aylanib o‘tish uchun biz har bir elementni birma-bir o‘tishimiz kerak bo‘ladi, shuning uchun buni amalga oshirish uchun zarur bo‘lgan qadamlar soni n bo‘ladi, ya’ni massivdagi elementlar soni ortgan sari operatsiyalar soni (O) ortadi.
Shuning uchun vaqt murakkabligi O = funktsiya (n) yoki O (n) bo'ladi. Agar bor-yo'g'i 1 ta element bo'lgan bo'lsa, ya'ni n qiymati bir ga teng bo'lsa , biz bir qadamni talab qilamiz, shuning uchun vaqt murakkabligi O(1) bo'ladi, bu o'tish uchun eng yaxshi vaqt murakkabligi, chunki olingan vaqt eng qisqa va o'rtacha va eng yomon vaqt murakkabligi bo'ladi.
O'rtacha yoki eng yomon vaqt murakkabligi: O(n)
Do'stlaringiz bilan baham: |