Home / Blog / 6 algorithms every developer should know
6 algorithms every developer should know

6 algorithms every developer should know

  • Anna KoshevaAnna Kosheva
  • July 31, 2022

    July 31, 2022

Let’s talk about the basic knowledge of developers, namely algorithms. What algorithms are worth knowing? Here is a selection of six of the most important.

  1. Binary search algorithm 

Binary Search is a searching algorithm for finding an element’s position in a sorted array. In this approach, the element is always searched in the middle of a portion of an array.

Binary Search Algorithm can be implemented in two ways which are discussed below.

  1. Iterative Method
  1. Recursive Method
  1. Breadth-first search algorithm 

BFS follows the “go wide, bird’s eye-view” concept. Instead of moving along a certain path to the end, BFS involves moving forward one neighbor at a time.

Instead of following a path, BFS involves visiting the nearest neighbors to s in one step, then visiting the neighbors’ neighbors, and so on until t is found.

How do you know which neighbors to visit first?

To do this, we can use the concept of “first in, first out” (first-in-first-out, FIFO) from the queue (queue). We enqueue first the vertex closest to us, then its unvisited neighbors, and continue this process until the queue is empty or until we find the desired vertex.

  1. Depth-first search algorithm

DFS follows the “go deep, head first” concept. The idea is that we move from the starting vertex (point, place) in a certain direction (along a certain path) until we reach the end of the path or destination (the desired vertex). If we have reached the end of the path, but it is not the destination, then we return (to the point of fork or divergence of the paths) and follow a different route.

We are moving along a certain path to the end. If the end of the path is the desired vertex, we’re done. If not, we go back and move along a different path until we explore all the options.

Learn more: Start your career working with Magento by studying for free!

  1. Merge sort algorithm 

Merge Sort is one of the most popular sorting algorithms that is based on the principle of the Divide and Conquer Algorithms.

Our task is to merge two subarrays A[p..q] and A[q+1..r] to create a sorted array A[p..r]. So the inputs to the function are A, p, q and r

The merge function works as follows:

  1. Create duplicates of the subarrays L ← A[p..q] and M ← A[q+1..r].
  2. Create three pointers “i”, “j” and “k”
    1. “i” maintains a current index of L, starting at 1
    2. “j” maintains a current index of M, starting at 1
    3. “k” maintains the current index of A[p..q], starting at “p”.
  3. Until we reach the end of either “L” or “M”, pick the larger among the elements from “L” and “M” and place them in the correct position at A[p..q]
  4. When we run out of elements in either “L” or “M”, pick up the remaining elements and put them in A[p..q]
  1. Kruskal’s algorithm

Kruskal’s algorithm is a minimum spanning tree algorithm that takes a graph as input and finds the subset of the edges of that graph which

  • form a tree that includes every vertex
  • has the minimum sum of weights among all the trees that can be formed from the graph

The steps for implementing Kruskal’s algorithm are as follows:

  1. Sort all the edges from low weight to high
  2. Take the edge with the lowest weight and add it to the spanning tree. If adding the edge created a cycle, then reject this edge.
  3. Keep adding edges until we reach all vertices.

Leran more: How to config providers?

  1. Tree traversal algorithm 

Traversing a tree means visiting every node in the tree. You might, for instance, want to add all the values in the tree or find the largest one. For all these operations, you will need to visit each node of the tree.

Let’s think about how we can read the elements of the tree in the image shown above.

Starting from top, left to right

1 -> 12 -> 5 -> 6 -> 9

Starting from bottom, left to right

5 -> 6 -> 12 -> 9 -> 1

Please share this blog with friends and colleagues!

  • Anna KoshevaAnna Kosheva
  • July 31, 2022

    July 31, 2022

Sign up and don't miss our awesome Mage Mastery lessons and updates!

Related Posts
1
Dec

Magento 2 Quick Start: Installation using Composer

The tutorial is for those who are looking to get a experience on how to install Magento 2 Open Source on a local development environment. A step-by-step video guide for developers.
23
Mar

CMS Block and Page in Magento 2

In this tutorial we will reveal the difference between CMS Page and Block in Magento 2.
22
Jul

How to Configure Varnish 6 and nginx with ssl for Magento 2

In this tutorial, we are going to set up and configure Varnish Cache with nginx and SSL (https) certificate for a Magento 2 Open Source.
If you like this blog post, you may want to watch
Start: March 28, 2021
Intermediate
 
Max Pronko
Web Icon20 lessons
Clock Icon15 hours
Adobe Certified Professional — Magento Commerce Developer Study Group is an 10-week (1.5 hours/week) instructor-led study group. This study group will help PHP and JavaScript developers evaluate their readiness and prepare for the Adobe Certified Professional — Magento Commerce Developer exam.
Start: March 15, 2021
Advanced
 
Max Pronko
Web Icon80 lessons
Clock Icon15 hours
Magento 2 Development Workshop is for those who want to practice and learn how to implement Magento 2 extensions. During the workshop, you will have lots of homework, practical exercises, video lessons, and theory that will give you the required skills for your Magento 2 job.
2022 © Made with ❤ by Max Pronko