Skip to main content

Fundamental Concepts of Arrays

 An array is a collection of elements of the same data type stored in contiguous memory cells. It has a fixed size and is by default passed by reference to a function. 

Eg. int arr[6] = {4, -3, 8, 5, -1, 6};

It initializes an integer array 'arr' storing 6 elements. 

Assuming the size of an integer to be 4 bytes and base cell address to be 2000. It can be represented as - 

Arrays are stored in contiguous memory cells

dynamic array is similar to a static array but it has the ability to automatically resize itself when an element is inserted or deleted. 

They are available as vectors in C++ and likewise lists in Java

Eg. list<int> l;
     vector<int> v;

Vectors are slightly less efficient than static arrays due to the occasional resizing and copying of elements.  

The amortized time complexity of insertion in a dynamic array is O(1). 

[Amortized Time complexity = No. of operations / No. of pushbacks]


Comments

Popular posts from this blog

Configuring 2 backend servers and a load balancer with HAProxy

A load balancer is a device that distributes the traffic across a cluster of servers. In computing, load balancing improves the distribution of workloads across multiple computing resources, such as computers, a computer cluster, network links, central processing units, or disk drives.As a result, it improves responsiveness and increases the availability of applications.  For load balancing, we need to install LAMP server on backend servers and HAProxy on the load balancer. HAProxy is a free, open source software that provides a high availability load balancer and proxy server for TCP and HTTP based applications that spread requests across multiple servers. Here we will make two backend servers and one load balancer. At two backend servers enter the following commands— $sudo apt-get install apache2 $sudo apt-get install mysql-server $sudo apt-get install php libapache2-mod-php php-mysql $sudo gedit /var/www/html/index.html (Make some changes in t

Devices used in each layer of OSI Model

Pic: Wikipedia 1.Physical Layer- Bits: Hubs, Repeaters, Fibers, Cables, Microwave, Radio, etc. 2.Data Link Layer- Frames: Bridges, 2-Layer Switches, Ethernet, WiFi AP's 3.Network Layer- Packets: Routers, 3-Layer Switches. 4.Transport Layer- Segments: Load Balancers/Firewalls. 5.Session Layer- Data:  Load Balancers/Firewalls/Computers. 6.Presentation Layer- Data: Load Balancers/Firewalls/Computers. 7.Application Layer- Data:  Load Balancers/Firewalls/Computers.

Modes of Data Communication

Modes of Data Communication refers to the direction of data flow from sender to receiver or vice-versa. There are basically three modes of data communication:- 1. Simplex: In this mode the communication is unidirectional . Only one of the two devices on a link can transmit and the other can only receive .i.e data travels in one direction. Example: radio, television, loudspeaker 2. Half-Duplex: In this mode, each device on the link has   the ability to both transmit and receive, each at a time . When one device is sending, the other can only receive and vice versa. Example: walkie-talkie 3. Full-Duplex: In full-duplex mode, both the devices can transmit and receive simultaneously .i.e data can travel in both directions at the same time. Here the communication is bidirectional . Example: Telephone