**Algorithm:**

An *algorithm* for a particular task can be defined as “a finite sequence of instructions, each of which has a clear meaning and can be performed with a finite amount of effort in a finite length of time”. As such, an algorithm must be precise enough to be understood by human beings. However, in order to be executed by a computer, we will generally need a program that is written in a rigorous formal language; and since computers are quite inflexible compared to the human mind, programs usually need to contain more details than algorithms. Here we shall ignore most of those programming details and concentrate on the design of algorithms rather than programs.

Fundamental questions about algorithms

Given an algorithm to solve a particular problem, we are naturally led to ask:

- What is it supposed to do?
- Does it really do what it is supposed to do?
- How efficiently does it do it?

The technical terms normally used for these three aspects are:

- Specification.
- Verification.
- Performance analysis

**Data Structure:**

For many problems, the ability to formulate an efficient algorithm depends on being able to organize the data in an appropriate manner. The term *data structure* is used to denote a particular way of organizing data for particular types of operation. These concepts will look at numerous data structures ranging from familiar arrays and lists to more complex structures such as trees, heaps and graphs, and we will see how their choice affects the efficiency of the algorithms based upon them.

We will start by studying some key data structures, such as arrays, lists, queues, stacks and trees, and then move on to explore their use in a range of different searching and sorting algorithms. This leads on to the consideration of approaches for more efficient storage of data in hash tables. Finally, we will look at graph based representations and cover the kinds of algorithms needed to work efficiently with them. Throughout, we will investigate the computational efficiency of the algorithms we develop, and gain intuitions about the pros and cons of the various potential approaches for each task.

Lectures

Duration

Skill level

Language

Assessments

KOTESWARARAO
*0 Votes*

Optimal binary search tree in dynamic programming

Login to reply
Instructor GATE

Please refer to the following link:"https://www.geeksforgeeks.org/optimal-binary-search-tree-dp-24/"

Login to reply
Abhishek Kushwaha
*0 Votes*

Divide and conquer paradigm is not covered.Is it not the part of syllabus?

Login to reply
Instructor GATE

Please note that all the algorithms merge sort,Quicksort etc implements divide and conquer approach.

Login to reply
© 2019 - All rights are reserved- AAIC Technologies pvt ltd

8 VotesSir why should we only use the ds and algorithms instead of programming languages?

Login to replyData structures and algorithms forms the core to implement any task in a efficicent manner.Programming languages are just platforms using which we implement those data structures and algorithms.

Login to reply