Cinque Terre


Gate CSE




Practice Test-1 Insertion sort and Asymptotic Notations
Feb 18, 2018 01:00 pm
Feb 20, 2018 08:30 pm

Practice Test-2 Ordering of Growth Functions and Merge Sort
Feb 22, 2019 04:00 pm
Feb 24, 2019 12:00 am

Practice Test-3 Solving Recurrence Relations,Bubble Sort, Quick Sort, Linear Time Sorting-Counting Sort and Radix Sort
Feb 26, 2019 12:00 pm
Feb 27, 2019 08:30 pm

Practice Test-4 Introduction to Algorithms - Linear Time Sorting Algorithms
Mar 01, 2019 12:00 am
Mar 02, 2019 08:15 pm

Practice Test-5 Single Linked List, Double Linked List ,Circular Linked List, Stack, Expression Evaluation, Prefix ,Infix, Postfix
Mar 05, 2019 03:15 pm
Mar 06, 2019 09:00 pm

Practice Test-6 Queue,Arrays
Mar 07, 2019 06:00 pm
Mar 09, 2019 08:15 pm

Practice Test-7 Searching, Binary Search Tree, Trees ,Heap Sort
Mar 12, 2019 11:00 am
Mar 14, 2019 08:30 pm

Practice Test-10 Dynamic Programming
Mar 27, 2019 01:00 pm
Mar 27, 2019 09:00 pm

Practice Test- 11 Greedy Algorithms
Mar 29, 2019 04:21 pm
Mar 30, 2019 08:30 pm

Algorithms and Data Structure Subject Test - 1
Apr 02, 2019 09:30 am
Apr 02, 2019 12:00 pm

Algorithms and Data Structure Subject Test-2
Apr 02, 2019 05:15 pm
Apr 02, 2019 06:00 pm

Data Structures and Algorithms

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:

  1. What is it supposed to do?
  2. Does it really do what it is supposed to do?
  3. How efficiently does it do it?

The technical terms normally used for these three aspects are:

  1. Specification.
  2. Verification.
  3. 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.


Course Features
Skill level

Cinque Terre

QUALIFICATION: Masters from IISC Bangalore PROFESSIONAL EXPERIENCE: 9+ years of Experience( Yahoo Labs, Matherix Labs Co-founder and Amazon)

0 Comment(s)

Login to comment
© 2018 - All rights are reserved- AAIC Technologies pvt ltd