# DS and Algorithm

#### DS and Algorithm

Data Structures are the programmed technique to store data to make efficient use of data. Almost every business application uses different types of data structures in one way or the other. This course provides a wonderful insight into the data structures necessary to grasp the complexity and requirements of business applications' algorithms and data structures.

#### Why learn the structure of data and algorithms?

Due to the complexity of applications and abundant data, applications confront three main difficulties every day.

• Data Search − Take stock of 1 million items(106). If you are looking for an item, it is necessary to search every time you slow down the search, in 1 million (106) things. As the search increases, the search is slower.
• Processor speed − although the processor speed is relatively high, it is restricted when the data increases to one billion records.
• Multiple requests – Even the rapid server fails when searching the data, as thousands of users can simultaneously search for data on a web server.

Data structures are rescued from tackling the challenges mentioned above. Data can be organized so that all objects cannot be searched, and the requested data can nearly immediately be searched.

#### Algorithms

The algorithm is a step-by-step technique that defines a collection of instructions for carrying out the desired result in a given order. Algorithms are often constructed independently from the languages underlying them. In more than one programming language, an algorithm can be implemented.

This tutorial is for graduates of Computer Science and software specialists ready to study information structures, and the development of the algorithms is straightforward and basic steps.

You will be at the intermediate level of competence after completing this tutorial, from which you can take your expertise to the highest degree. Before starting this tutorial, you should grasp the C programming language, text editor, program execution.

#### Asymptotic Analysis

The mathematical boundation/framing of an algorithm's run-time performance is defined by asymptotic analysis. We can quickly determine an algorithm's best Case, average Case, and worst-case scenarios using asymptotic analysis.

Asymptotic analysis is input bound, which means that if the method has no information, it is assumed to work in a constant time. Aside from the "input," all other variables are considered constant.

Calculating the running time of any operation in mathematical computation units is known as asymptotic analysis. For example, one operation's running time is computed as f(n), whereas another operation's running time is computed as g. (n2). This indicates that when n increases, the first operation's running time will increase linearly, whereas the second operation's running time will climb exponentially. Similarly, if n is small enough, the running time of both operations will be roughly the same.

#### An algorithm's time requirement usually falls into one of three categories.

The program execution time is as short as possible in the best-case scenario.

Average Case The average amount of time it takes to run a program.

Worst-case scenario: program execution takes the longest possible time.

#### Notations for Asymptotic Values

The following are some of the most frequent asymptotic notations for calculating an algorithm's running time complexity.

• Ο Notation
• Ω Notation
• θ Notation

#### Big Oh notation, O

The formal way to indicate the upper bound of an algorithm's running time is to use the notation (n). It calculates the worst-case time complexity or the maximum time an algorithm can take to finish.

#### Omega Notation, Ω

The formal way to indicate the lower bound of an algorithm's running time is to use the notation (n). It calculates the best-case time complexity, or the shortest time an algorithm can take to finish.

#### Theta Notation, θ

The formal way to represent both the lower and upper bound of an algorithm's running time is to use the notation (n).