Algorithms in C : Concepts, Examples, Code + Time Complexity
3.5 (38 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,892 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithms in C : Concepts, Examples, Code + Time Complexity to your Wishlist.

Add to Wishlist

Algorithms in C : Concepts, Examples, Code + Time Complexity

Learn algorithms in C language. Understand Logic with examples, practice code and crack those programming interviews!
3.5 (38 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,892 students enrolled
Last updated 4/2017
English
Current price: $10 Original price: $100 Discount: 90% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 14 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn the concepts behind Most Popular Algorithms used in Computer Science
  • Understand how algorithms work with the help of diagrams, examples and pseudocode
  • Practise Algorithm Implementation with the help of included Programs in C language
  • Understand how to use algorithms to implement most important logics in any programming.
View Curriculum
Requirements
  • Basic Knowledge of any programming language, preferably 'C'
  • A C compiler and Editor to practise the algorithm programs
  • Interest in Algorithms and programming
  • No additional knowledge is required
  • You will need a computer with internet to access lectures and resources
Description

Algorithms in C : Concepts, Examples, Code + Time Complexity (Recently updated : January 14, 2017!)

What's New: Time Complexity of Merge SortExtended Euclidean Algorithm in Number Theory section, New section on Transform and Conquer algorithms

Algorithms are very important for programmers to develop efficient software designing and programming skills. This Course introduces you to most important algorithms in computer science. Each video explains the concept/logic behind the algorithm, provides an example and explains pseudo-code. Each video also has working C programs of algorithm implementations with sample input & output. This course will help you crack those programming interviews on algorithms.

Why Take this Course?

Most of the companies in today's world depend on software for their daily operations. How do these software take right decisions and keep these companies running in the right direction? Well, it's all in their programming. Programmers over the decades have been writing code which perform right operations in right conditions. This is done using Algorithms.

Taking this algorithms course will help you to understand how to implement logic in the form of a code in an optimal way and also enables you to write the programs efficiently. In this course you will learn how the most important and most common algorithms used in programming are designed and implemented. This course will kick start your journey in the world of programming with algorithms.

How is this course designed?

This Course is structured into following sections:

Overview: This section introduces you to the course, provides information about the author, course structure and gives you answers to some of the frequently asked questions by students.

Brute Force: This section explains the brute force approach to problem solving. You will understand the how the algorithms selection sort, bubble sort, sequential search and string matching work.

Divide and Conquer: This section deals with algorithms based on Divide and Conquer technique. Two sorting algorithms - quick sort and merge sort are explained.

Decrease and Conquer: In this section decrease and conquer approach and its variants are explained. Binary search and insertion sort algorithms are explained with an example.

Transform and Conquer: Significance of transform-and-conquer technique and algorithms like heap-sort will be explained here. Lectures on Heaps, heap construction and heapsort algorithm are added. Each algorithm is explained with an example in a lucid way.

Dynamic Programming: This section explains how to solve problems with overlapping sub-problems. Warshall's algorithm and Floyd's algorithm are explained.

Greedy Technique: This section explains algorithms based on Greedy technique. Section begins with explanation on minimum spanning tree concept. Two algorithms (Prim's and Kruskal's) to construct a minimum spanning tree of a given graph are explained step-by-step.

Number Theory : This section deals with the algorithms involving numerical computations. Euclid's Algorithm, Extended-Euclidean Algorithm and RSA algorithm are explained with example.

Time Complexity : This section explains the importance of time complexity analysis, the asymptotic notations to denote the time complexity of algorithms.

Also, each algorithm's time complexity is explained in separate video lectures.

Students can benefit by learning about designing and implementing algorithms in C. Job Seekers can also benefit by using the information in preparing for their programming interviews.

Once you are enrolled, you get a life time access to all the resources and lectures in this course. This course is always evolving with new lectures, resources and quizzes to keep you up-to-date. So take this course now and learn how to design and implement algorithms.

Who is the target audience?
  • Computer Science Students who are taking Algorithms as an Academic Course
  • IT students and Developers who want to learn how to design and implement logic for any programs
  • Job aspirants who want to want to be successful at Developer Interviews
  • Non IT Students who wish to understand logic for writing efficient code
  • Anyone interested in learning most popular algorithms
Compare to Other C Courses
Curriculum For This Course
34 Lectures
03:33:25
+
Brute Force Approach
4 Lectures 22:45

Selection Sort : This video explains the selection sort algorithm. Selection sort is a brute force approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the selection sort algorithm.

Preview 04:33

Bubble Sort : This video explains the bubble sort algorithm. Bubble sort is a brute force approach based algorithm. An example is explained to help you understand the logic before explaining the pseudocode of the bubble sort algorithm.

Bubble Sort Algorithm
05:25

Sequential Search : This video explains the sequential search algorithm. Sequential search is a brute force approach based algorithm. An example is explained to help you understand the logic before explaining the pseudocode of the sequential search algorithm.

Sequential Search Algorithm
06:09

Brute Force String Match : This video explains the brute force string matching algorithm. As the name says this is a brute force approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the brute force string matching algorithm.

Brute Force String Matching Algorithm
06:38

Brute Force Quiz
4 questions
+
Divide and Conquer Approach
2 Lectures 16:58

Merge Sort : This video explains the merge sort algorithm. Merge sort is a divide and conquer approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the merge sort algorithm.

Merge Sort Algorithm
08:57

Quick Sort : This video explains the quick sort algorithm. Quick sort is a divide and conquer approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the quick sort algorithm.

Quick Sort Algorithm
08:01

Divide and Conquer Quiz
2 questions
+
Decrease and Conquer Approach
4 Lectures 30:42

Binary Search : This video explains the binary search algorithm. Binary search is a decrease and conquer paradigm based algorithm. An example is explained to help you understand the logic before explaining the pseudocode of the binary search algorithm.

Binary Search Algorithm
11:38

Insertion Sort : This video explains the insertion sort algorithm. Insertion sort is a decrease and conquer approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the insertion sort algorithm.

Insertion Sort Algorithm
04:46

Depth First Search(DFS) : This video explains the depth first search(DFS)algorithm. DFS is a decrease and conquer approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the depth first search(DFS) algorithm.

Depth First Search Algorithm
06:16

Breadth First Search(BFS) : This video explains the breadth first search(BFS)algorithm. BFS is a decrease and conquer approach based algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the breadth first search(BFS) algorithm.

Breadth First Search Algorithm
08:02

Decrease and Conquer Quiz
5 questions
+
Transform and Conquer Approach
3 Lectures 22:15

Heaps : This video discusses the transform-and-conquer technique. Heap sort is an algorithm that is based on transform and conquer technique. In order to understand the implementation of the algorithm, you need to know the concept if heap and its properties. This lecture explains the same.

Heaps
06:23

Heap Construction : This video explains how to construct a heap for a given list of numbers using bottom-up approach. An example is explained to help you understand the logic before explaining the pseudo-code of the HeapConstruction algorithm.

You may download the source code in the resources section.

Heap Construction [bottom-up approach]
08:36

Heap Sort : This video explains how to sort a given list of numbers using Heap Sort Algorithm. An example is explained to help you understand the logic before explaining the pseudo-code of the Heap Sort algorithm.

You may download the source code in the resources section.

Heap Sort Algorithm
07:16
+
Dynamic Programming
2 Lectures 23:43

Warshall's Algorithm : This video explains the Warshall's algorithm. Warshall's algorithm is based on dynamic programming. An example is explained to help you understand the logic before explaining the pseudo-code of the Warshall's algorithm. Using the Warshall's algorithm we find the transitive closure of the given graph.

Warshall's Algorithm
09:27

Floyd's Algorithm : This video explains the Floyd's algorithm to solve all pairs shortest-paths problem. Floyd's algorithm is based on dynamic programming. An example is explained to help you understand the logic before explaining the pseudo-code of the Floyd's algorithm. Using the Floyd's algorithm we find the lengths of shortest paths from each vertex to all other vertices in the given graph.

Floyd's Algorithm
14:16

Dynamic Programming Quiz
3 questions
+
Greedy Technique
2 Lectures 13:59

Prim's Algorithm : This video explains the Prim's algorithm to construct a minimum spanning tree for a connected weighted graph. Prim's algorithm is a greedy technique. An example is explained to help you understand the logic before explaining the pseudo-code of the Prim's algorithm.

Prim's Algorithm
10:08

Kruskal's Algorithm : This video explains the Kruskal's algorithm to construct a minimum spanning tree for a connected weighted graph. Kruskal's algorithm is a greedy technique. An example is explained to help you understand the logic before explaining the pseudo-code of the Kruskal's algorithm.

Kruskal's Algorithm
03:51

Greedy Technique Quiz
5 questions
+
Bonus Section : Time Complexity
11 Lectures 48:24

Introduction to Analysis of Algorithms: Merely knowing how algorithms work is not sufficient. It is very important and helpful to know how efficient the algorithms are.

This video explains what is the need for analysis of algorithms. Also you will understand what is time complexity, order of growth and get an idea on how to find time complexity.

Preview 07:36

Asymptotic Notations : This video helps you understand the different types of asymptotic notations, what they mean and how they are used to compare the orders of growth of algorithms.

Asymptotic Notations
06:13

Selection Sort : This video explains how to calculate the time complexity of selection sort algorithm.

Time Complexity - Selection Sort Algorithm
03:21

Bubble Sort : This video explains how to calculate the time complexity of Bubble Sort algorithm.

Time Complexity - Bubble Sort Algorithm
03:45

Sequential Search : This video explains how to calculate the time complexity of Sequential Search algorithm.

Time Complexity - Sequential Search Algorithm
02:51

String Matching : This video explains how to calculate the time complexity of Brute Force String Matching algorithm.

Time Complexity - String Matching Algorithm
03:47

Insertion Sort : This video explains how to calculate the time complexity of Insertion Sort algorithm.

Time Complexity - Insertion Sort Algorithm
03:35

Warshall's Algorithm : This video explains how to calculate the time complexity of Warshall's algorithm.

Time Complexity - Warshall's Algorithm
01:58

Floyd's Algorithm : This video explains how to calculate the time complexity of Floyd's Algorithm.

Time Complexity - Floyd's Algorithm
02:13

This video explains what Master Theorem is and how it is useful in solving recurrence relations with examples. This is very helpful in analyzing algorithms involving recursive computation and in determining their time complexity.

Master Theorem
08:24

This video explains how to calculate the time complexity of Merge Sort Algorithm.

In order to understand this lecture, you should know how to form the recurrence relations and the Master Theorem. Please watch our lecture on Master Theorem prior to this.

Subtitles for this video will be added shortly.

Time Complexity - Merge Sort Algorithm
04:41

Time Complexity Quiz
6 questions
+
Number Theoretic Algorithms
4 Lectures 24:07

This video explains Euclid's Algorithm to find Greatest Common Divisor(GCD) of two integers.

Euclid's Algorithm [GCD of two numbers]
05:39

C Program on Euclid's Algorithm
4 pages

This lecture is an extension of Euclid's Algorithm wherein the GCD of two integers a and b is found in addition to the coefficients x,y that are used to express the GCD in the form ax+by.

The knowledge on this algorithm comes handy in understanding some more concepts in Number theory.

Extended Euclidean Algorithm
12:05

RSA Algorithm : This video explains the RSA Algorithm to encrypt a message. An example is explained to help you understand the logic before explaining the pseudo-code.

You may download the source code in C-language in the resources section.

RSA Algorithm
06:23

Number Theory Quiz
3 questions
About the Instructor
Engineering Mentor
4.2 Average rating
263 Reviews
4,806 Students
3 Courses
Courses for IT students

Engineering Mentor is an online educational start-up, providing educational resources to IT and non IT students. At Engineering Mentor, we create high quality resources in clear and easy to understand methods.

We have a team of qualified engineers who create resources to guide students through the toughest aspects of technical and non technical education.

Pratibha B.
4.2 Average rating
179 Reviews
3,543 Students
2 Courses
IT Professional, Instructor

Pratibha has a master's degree in Computer Science and has been involved with IT industry since 2010.

Pratibha has worked with Infosys Company for clients like Cisco. She is a CCNA Certified Test Engineer with experience in Automation and Manual Testing. Pratibha has been a part of Engineering Mentor expert teacher's group for over a year now and has been actively involved in online and offline teachings on software Testing.