Algorithms Tutorials — Implementation in C, Data Structures and Algorithm Libraries

Flat diagram illustration showing sorting algorithm bar chart binary search tree and weighted graph network for algorithms tutorials in blue and white

Algorithms are the foundation of all software — the precise, step-by-step instructions that tell a computer how to solve a problem efficiently. Understanding algorithms is not just an academic exercise. It is what separates programmers who write code that works from engineers who write code that works fast, scales under load and handles complex problems elegantly. From sorting a list of names to finding the shortest path across a network, algorithms determine how well your software performs in the real world.

MYCPLUS has been publishing algorithm tutorials and implementation guides since 2004, with a particular focus on practical algorithm implementations in C and C++. This section covers the essential algorithms every programmer should understand — sorting, searching, graph traversal, tree operations and optimisation techniques — alongside practical data structure implementations and guides to established algorithm libraries used in professional C and C++ development.

With over 30 articles covering beginner through advanced algorithm concepts, you will find clear explanations of how each algorithm works, analysis of time and space complexity, working C source code implementations you can compile and study, and practical guides to algorithm libraries that save development time on real projects. Whether you are preparing for technical interviews, studying computer science fundamentals or optimising production code — start here.

What You’ll Learn

  • Sorting algorithms — bubble sort, merge sort, quicksort, heap sort and radix sort explained with step-by-step walkthroughs and working C implementations comparing performance and use cases
  • Searching algorithms — linear search, binary search, hash-based lookup and tree search techniques with practical C source code examples and complexity analysis
  • Graph traversal algorithms — breadth-first search, depth-first search, Dijkstra’s shortest path, Kruskal’s minimum spanning tree and practical graph algorithm implementations in C
  • Data structures for algorithms — arrays, linked lists, stacks, queues, binary trees and hash tables as the building blocks for efficient algorithm implementation in C and C++
  • Algorithm complexity and analysis — understanding Big O notation, time and space complexity, best and worst case analysis and choosing the right algorithm for your specific problem
  • C algorithm libraries — practical guides to established C algorithm libraries, standard library functions and reusable algorithm implementations for professional software development

Why MYCPLUS: Trusted by programmers and computer science students since 2004 — every algorithm tutorial includes working C source code implementations, complexity analysis and practical examples designed for both academic study and real-world software development.

Towers of Hanoi Java Program

Towers of Hanoi Java Program

This Java Program solves the Towers of Hanoi problem for a tower of 10 disks. Ten differently-sized disks are stacked in a pile, in order of decreasing size. There are two other places for piles. The object is to move the pile to the second available place, subject to the rules that only one disk at a time can be moved, and no disk can be piled on top of a smaller disk. The Towers of Hanoi problem is a standard example of recursion.

Algorithms in C

Algorithms in C

These algorithms are represented in terms of compact implementations in C so that readers can both understand their fundamental properties and implement them in real applications. The method of the analysis of algorithms is quite carefully designed. When appropriate, analytic results are described to explain why certain algorithms are preferred. In some cases, the practical algorithms’ relationship being discussed to purely theoretical results is also described.

Operations Research Applications and Algorithms

Operations Research : Applications and Algorithms

Unlock the power of optimization and problem-solving with Operations Research: Applications and Algorithms. This book equips readers with the tools to tackle complex decision-making challenges in fields like logistics, finance, and manufacturing. A must-have for anyone interested in the application of mathematical modeling and algorithms.

Solving the Knapsack Problem

Solving the Knapsack Problem with Code Examples

The Knapsack Problem is a classic optimization problem in computer science and mathematics. The goal is to maximize the value of items placed in a knapsack without exceeding its weight capacity. This problem has many variations, but the most common are: 0/1 Knapsack Problem: Each item can either be included or excluded. Fractional Knapsack Problem: Items can be divided to maximize value.

Base 64 Encoding and Decoding

256-bit Serpent VB Implementation

This is a slow but working Visual Basic implementation of the 256-bit Serpent algorithm. Serpent was a finalist for Advanced Encryption Standard (AES) and appears to be a very secure powerful algorithm. The Advanced Encryption Standard, or AES, is a symmetric block cipher chosen by the U.S. government for the encryption of classified electronic data and is implemented in software and hardware throughout the world to encrypt sensitive data.

random numbers

Find the longest common sub-sequence between two strings: Dynamic Programming Algorithm

This C program finds the longest common sub-sequence between two strings. It implements the most famous dynamic programming algorithm. Dynamic programming is a computational technique used to solve complex problems by breaking them down into smaller subproblems and solving each subproblem only once, storing the solution to each subproblem and using it to solve larger problems.

String Sorting in Java

String Sorting in Java

In this article, we explore different sorting techniques applied to strings in Java. We will look into the implementation of the direct insertion sorting algorithm and more advanced techniques such as the Merge Sort and Quick Sort algorithms. Each approach offers unique advantages by providing Java developers with flexibility in choosing the most suitable method based on the specific requirements of their applications.

Porter's Algorithm in C

Porter’s Algorithm in C

Originally written in 1979 at Computer Laboratory, Cambridge (England), it was reprinted in 1997 in the book “Readings in Information Retrieval”. Initially it was written in BCPL language. Here is the list of implementations in other programming languages including C, Java and Pearl implementations done by author himself.

Standard Function Library

Standard Function Library – ANSI C

The SFL (Standard Function Library) is an open source portable function library for C/C++ programs. Written by iMatix, the SFL provides about 450 functions for compression, encryption, encoding, datatype conversion and formatting, dates, times, calendars, internet programming (MIME, CGI) and many more.

Scroll to Top