Mastering Algorithms: Essential Questions to Understand the Gist of Searching Algorithm

Namrata
4 min readJan 6, 2024

--

Algorithms can be difficult to understand, and the sheer number of algorithms out there can be overwhelming. So how can you get a handle on the world of algorithms that will help you crack interviews?

Here we will discuss a set of essential questions that can help you get the gist of any algorithm. These questions are designed to give you a framework for understanding the basic principles behind algorithms, regardless of their complexity or domain.

Whether you’re a beginner or an expert, these questions will help you get a deeper understanding of how algorithms work and what they can do. So let’s dive in and start mastering the world of algorithms!

Let’s get started

Searching algorithms

Searching algorithms are used to find a specific value or set of values in a collection of data, such as an array or a database.

Linear search

This is the simplest and most basic search algorithm. It works by sequentially searching through each element in a collection until the target element is found.

A few questions are frequently asked in interviews:

  1. Two Sum
    Difficulty: Easy
    LeetCode link: https://leetcode.com/problems/two-sum/
  2. Find the Duplicate Number
    Difficulty: Medium
    LeetCode link: https://leetcode.com/problems/find-the-duplicate-number/
  3. Third Maximum Number
    Difficulty: Easy
    LeetCode link: https://leetcode.com/problems/third-maximum-number/

These questions involve different variations of linear search, and their time complexities range from O(n) to O(sqrt(n)) to O(log n).

Binary search

This is a more efficient searching algorithm that works on sorted arrays. It repeatedly divides the search interval in half until the target element is found.

Here are the top 5 LeetCode top interview questions

  1. Search in Rotated Sorted Array
    Difficulty: Medium
    LeetCode link: https://leetcode.com/problems/search-in-rotated-sorted-array/
  2. Median of Two Sorted Arrays
    Difficulty: Hard
    LeetCode link: https://leetcode.com/problems/median-of-two-sorted-arrays/
  3. First Bad Version
    Difficulty: Easy
    LeetCode link: https://leetcode.com/problems/first-bad-version/
  4. Find Minimum in Rotated Sorted Array
    Difficulty: Medium
    LeetCode link: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/
  5. Sqrt(x)
    Difficulty: Easy
    LeetCode link: https://leetcode.com/problems/sqrtx/

Hash Search

This algorithm uses a hash function to locate the target element in constant time. It is commonly used in database systems to quickly locate data based on a key value.

  1. Valid Anagram (Easy)
  2. Group Anagrams (Medium)
  3. Subarray Sum Equals K (Medium)
  4. Longest Consecutive Sequence (Hard)

Ternary search

This algorithm is used to find the maximum or minimum value of an unimodal function. It works by dividing the search interval into three parts and then deciding which part to continue searching in.

Ternary search is not a very commonly used algorithm in coding interviews, and as such, there are no specific LeetCode questions that exclusively focus on ternary search.

However, some questions can be solved using a ternary search approach. Here are a few examples:

  1. Split Array Largest Sum (Hard)
    https://leetcode.com/problems/split-array-largest-sum/
  2. Kth Smallest Element in a Sorted Matrix (Medium)
    https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/
  3. Capacity To Ship PackagesWithin D Days (Medium)
    https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/

Jump search

This algorithm is similar to binary search, but it works on uniformly distributed arrays. It jumps ahead by a fixed number of steps until it finds a range that contains the target element, and then performs a linear search within that range.

Jump Search is not a frequently asked topic in LeetCode interviews, but here is one problem that can be solved using Jump Search:

Search in Rotated Sorted Array II — Medium — https://leetcode.com/problems/search-in-rotated-sorted-array-ii/

I hope this might have helped you.

For sorting algorithms can check

Mastering Algorithms: Essential Questions to Understand the Gist of Sorting Algorithm CodesCoddler

There are a lot more algorithms that we all need to discuss.

  • Dynamic Programming algorithms
  • Graph algorithms
  • String algorithms
  • Tree algorithms
  • Backtracking algorithms
  • Two-pointer algorithms and many more

We will discuss this in the coming blog till then let’s become pros with searching algorithms and for more algorithms follow to stay tuned and receive emails for updates :)

There are a couple of books that can help you more. Refer to Best Books for Data Structures and Algorithms 2023

--

--

Namrata
Namrata

Written by Namrata

Engineering @Microsoft A software developer writing her daily bits . https://www.linkedin.com/in/namrataagarwal5/

No responses yet