Array āĻšāϞ⧠āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ, āϝāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§ āĻāĻāĻ āϧāϰāύā§āϰ āĻāĻāĻžāϧāĻŋāĻ āĻĄāĻžāĻāĻž āĻāĻāϏāĻā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āĻŽā§āĻļāĻŋāύā§āϰ āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ array āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻž āĻŦā§āĻāĻž āĻ āύā§āĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ, āĻāĻžāϰāĻŖ array āĻā§āĻŦ efficient āĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻĻā§āϰā§āϤ data access āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
Array āĻšāϞ⧠āĻāĻāĻāĻŋ collection, āϝā§āĻāĻžāύ⧠āĻāĻāĻ āϧāϰāύā§āϰ multiple values sequentially āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ value āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ index āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ access āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ Array-āĻāϰ āĻāĻāĻāĻŋ āĻŦā§ āϏā§āĻŦāĻŋāϧāĻž āĻšāϞā§, āĻāĻāĻŋ constant time, āĻ āϰā§āĻĨāĻžā§ O(1) āϏāĻŽā§ā§ values access āĻāϰāϤ⧠āĻĻā§āϝāĻŧ, āϝāĻž āĻ āύā§āϝāĻžāύā§āϝ āĻĄāĻžāĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻĨā§āĻā§ āĻ āύā§āĻ āĻĻā§āϰā§āϤāĨ¤
āϝāĻāύ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ array declare āĻāϰā§āύ, āĻŽā§āĻļāĻŋāύ āϏā§āĻ array āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āĻŽā§āĻŽāϰāĻŋ allocate āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ int
āĻāĻžāĻāĻĒ array āϝā§āĻāĻžāύ⧠5āĻāĻŋ elements āĻāĻā§, āϏā§āĻāĻŋ sequential āĻāĻžāĻŦā§ 4 bytes āĻāϰ⧠5āĻāĻŋ element āĻŽā§āĻŽāϰāĻŋāϤ⧠store āĻāϰāĻŦā§āĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāĻĨāĻŽ element āĻŽā§āĻŽāϰāĻŋ address 1000 āĻ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻŦāĻžāĻāĻŋ element āĻā§āϞ⧠sequential āĻāĻžāĻŦā§ 1004, 1008, 1012, āĻāϤā§āϝāĻžāĻĻāĻŋ address āĻ āĻĨāĻžāĻāĻŦā§āĨ¤
int arr[5]; // 5āĻāĻŋ integer āĻāϰ āĻāύā§āϝ āĻŽā§āĻŽāϰāĻŋ allocate āĻšāĻŦā§
Array āϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ element āĻāϰ āĻāĻāĻāĻŋ index āĻĨāĻžāĻā§, āϝāĻž array āĻāϰ address āĻāϰ āϏāĻžāĻĨā§ element āĻāϰ size āϝā§āĻ āĻāϰ⧠āϏā§āĻ element āĻāϰ āϏāĻ āĻŋāĻ address āĻŦā§āϰ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ āĻāĻāύā§āϝ array āϤ⧠āĻā§āύ element access āĻāϰāϤ⧠O(1) āϏāĻŽāϝāĻŧ āϞāĻžāĻā§āĨ¤ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ element āĻāϰ address āĻĒā§āϤ⧠āĻāĻ āĻĢāϰā§āĻŽā§āϞāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ:
Address of arr[i] = Base address + (i * size_of_element)
int arr[3] = {10, 20, 30};
printf("%d", arr[1]); // Output: 20
āĻāĻāĻāĻŋ array āĻāϰ size āϏāĻžāϧāĻžāϰāĻŖāϤ fixed āĻšāϝāĻŧ, āĻ āϰā§āĻĨāĻžā§ āĻāĻāĻŋ declare āĻāϰāĻžāϰ āĻĒāϰ array āĻāϰ size āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤ āĻŽā§āĻļāĻŋāύ⧠āĻŽā§āĻŽāϰāĻŋ allocation fixed āĻāĻŦāĻ contiguous āĻšā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻŦā§āĻļāĻŋ āĻāĻžā§āĻāĻž āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰāϤ⧠āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āĻāĻāĻāĻŋ āύāϤā§āύ array āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻĒā§āϰāύ⧠array āĻāϰ āĻĄā§āĻāĻž āϏā§āĻāĻžāύ⧠āĻāĻĒāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āϝāĻāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻšāϝāĻŧ, āϤāĻāύ compiler array āĻāϰ āĻāύā§āϝ āĻŽā§āĻļāĻŋāύ⧠memory address āĻāĻŦāĻ array āĻāϰ size āĻāϤā§āϝāĻžāĻĻāĻŋ āϏā§āĻ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ array āĻĄāĻŋāĻā§āϞā§āϝāĻŧāĻžāϰ āĻāϰāĻŋ, compiler āϤāĻž sequential āĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋāϤ⧠āϰāĻžāĻāĻŦā§āĨ¤ āĻĒāϰ⧠āϝāĻāύ array āĻĨā§āĻā§ āĻā§āύ⧠value access āĻāϰāĻž āĻšāĻŦā§, āĻŽā§āĻļāĻŋāύ āϏā§āĻ memory address āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ value access āĻāϰāĻŦā§āĨ¤
int arr[5] = {1, 2, 3, 4, 5};
MOV arr[2], EAX; // āĻŽā§āĻļāĻŋāύ āϞā§āĻā§āϞ⧠arr[2] āĻā§ āĻŽā§āĻŽāϰāĻŋ āĻĨā§āĻā§ EAX āϰā§āĻāĻŋāϏā§āĻāĻžāϰ⧠āύāĻŋā§ā§ āĻāϏāĻā§
āĻāĻŋāĻā§ āĻāϧā§āύāĻŋāĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻ, āϝā§āĻŽāύ Python āĻāĻŦāĻ JavaScript, dynamic arrays āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϝā§āĻā§āϞ⧠runtime āĻ size āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻ āϧāϰāύā§āϰ arrays āύāϤā§āύ element āϝā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŽā§āĻŽāϰāĻŋāϤ⧠āύāϤā§āύ block allocate āĻāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāύ⧠data āϏā§āĻāĻžāύ⧠āĻāĻĒāĻŋ āĻāϰā§āĨ¤
Array sequential āĻāĻžāĻŦā§ āĻŽā§āĻŽāϰāĻŋāϤ⧠store āĻšāϝāĻŧ āĻŦāϞā§, āĻāĻāĻŋ cache memory āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āĻļ āĻāĻžāϰā§āϝāĻāϰ āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤ āϝāĻāύ āĻŽā§āĻļāĻŋāύ āĻāĻāĻžāϧāĻŋāĻ array elements access āĻāϰā§, āϤāĻāύ cache memory sequential memory block āύāĻŋā§ā§ āĻāĻžāĻ āĻāϰā§, āϝāĻž access time āĻāĻŽāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ āĻāĻŦāĻ performance āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤
āĻāϤā§āϤāϰ: āĻšā§āϝāĻžāĻ, array declare āĻāϰāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§āĻ āĻŽā§āĻļāĻŋāύ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŽā§āĻŽāϰāĻŋ allocate āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ value assign āύāĻž āĻāϰāϞā§āĻ, array āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ element āĻāϰ āĻāύā§āϝ āĻŽā§āĻŽāϰāĻŋ block āĻŦāϰāĻžāĻĻā§āĻĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āϤāĻŦā§, uninitialized array āĻāϰ āĻāύā§āϝ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§āϰ āĻāĻĒāϰāĨ¤ āĻāĻŋāĻā§ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ 0
āĻĨāĻžāĻā§, āĻāĻŦāĻžāϰ āĻāĻŋāĻā§āϤ⧠āϤāĻž garbage value āĻšāϝāĻŧāĨ¤
āĻāϤā§āϤāϰ: āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§ array āĻāϰ size compile-time āĻ āύāĻŋāϰā§āϧāĻžāϰāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ runtime āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤ āϤāĻŦā§ Python āĻŦāĻž JavaScript āĻāϰ āĻŽāϤ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§ dynamic arrays āĻĨāĻžāĻā§, āϝā§āĻā§āϞ⧠runtime āĻ size āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāϤā§āϤāϰ: Array sequential āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ constant time āĻ element access āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŋāύā§āϤ⧠Linked List random memory locations āĻ element store āĻāϰ⧠āĻāĻŦāĻ sequential āĻāĻžāĻŦā§ traverse āĻāϰ⧠element access āĻāϰāϤ⧠āĻšāϝāĻŧ, āϝāĻž O(n) āϏāĻŽāϝāĻŧ āύā§āϝāĻŧāĨ¤
āĻāϤā§āϤāϰ: āĻŽā§āĻŽāϰāĻŋ efficiency āĻāϰ āĻāύā§āϝ array āĻŦā§āĻļ āĻāĻžāϰā§āϝāĻāϰ, āĻāĻžāϰāĻŖ āĻāĻāĻŋ contiguous āĻŽā§āĻŽāϰāĻŋ block āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ memory pointers āĻāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž, āϝāĻž linked list āĻ āĻĻā§āĻāĻž āϝāĻžāϝāĻŧāĨ¤
Array āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āϞā§āϝāĻžāĻā§āĻā§āϝāĻŧā§āĻā§ āĻāĻāĻāĻŋ āĻ āϤā§āϝāύā§āϤ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ data structure, āϝāĻž āĻŽā§āĻŽāϰāĻŋ management āĻāĻŦāĻ data access āĻāϰ efficiency āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤ āĻŽā§āĻļāĻŋāύ⧠array sequential āĻŽā§āĻŽāϰāĻŋ allocation āĻāϰ āĻāĻžāϰāĻŖā§ āĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ element access āĻāϰāϤ⧠āĻĒāĻžāϰ⧠constant āϏāĻŽāϝāĻŧā§āĨ¤
āĻāĻļāĻž āĻāϰāĻŋ, array āĻāϰ āĻŽā§āĻļāĻŋāύ āϞā§āĻā§āϞ āĻāĻžāĻ āĻāĻŦāĻ āĻāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻĒā§ā§ā§āĻā§āύ!
Additional Resources:
Please Login to comment
āĻāĻŽāĻŋ āĻŦā§āĻāĻŋāύāĻŋ
āύāĻž āĻŦā§āĻāĻžāϰ āĻāĻŋ āĻāĻā§ đ¤