Algorithms and Data Structures in Ruby

Algorithms and Data Structures in Ruby

This repository contains Ruby implementation of various Algorithms and Data structures and solution of many challenges of HackerRank and Codility


  1. Binary Search
  2. Ubiquitous Binary Search (Binary search implementation with various applications)
  3. Problems based on Binary Search


  1. Bubble Sort
  2. Optimized Bubble Sort
  3. Selection Sort
  4. Insertion Sort
  5. Shell Sort
  6. Merge Sort
  7. Quick Sort
  8. 3 way Quick Sort
  9. Counting Sort
  10. Pancake Sort
  11. Sort array in wave form
  12. Sort a given array by frequency of elements
  13. Radix Sort
  14. Heap Sort


  1. Swapping two numbers
  2. Algorithm for reversing an array
  3. Algorithms for array rotation
  4. Subarray Problems(Kadane's Algorithm)
  5. Find missing number in array
  6. Shuffling an Array
  7. Find pair in array with sum equal to given value
  8. Find pair in array with difference equal to given value
  9. Find pair in array with sum closest to given value
  10. Find triplet in array with sum equal to given value
  11. Find Pythagorean triplet in given array
  12. Find equilibrium index in an array
  13. Find fixed point in an array
  14. Dutch National Flag Problem
  15. Move all zeros to the end of array
  16. Find all Leaders in an array
  17. Find smallest missing number in sorted array
  18. Majority Element in an array
  19. Find minimum element in sorted rotated array
  20. Search element in sorted rotated array
  21. Find maximum element in a Bitonic Array
  22. Find no. of occurences of an element in a sorted Array
  23. Find floor and ceil of given element in a sorted Array
  24. Replace every element by product of previous and next
  25. Find the element with odd occurences if all other elements have even occurences
  26. Print the maximum element in each k-sized subarray
  27. Print Next Greatest Element for each element of array
  28. Replace every element by maximum element on the right side(Next Greatest Element)
  29. Find the smallest and second smallest in a given array
  30. Find the maximum sum with no adjacent elements
  31. Given two sorted arrays find the union and intersection of arrays
  32. Given unsorted array of numbers check if numbers are consecutive
  33. Sort a given array by frequency of elements
  34. Create a product array from given array
  35. Find the median of two sorted array of equal size
  36. Given a 2D array,print its all elements in spiral order
  37. Find two repeating elements in given array
  38. Minimum length unsorted subarray,sorting which makes the array sorted
  39. Find max diff between 2 elements such that larger appears after smaller
  40. Find duplicates in array in O(n) time and constant space
  41. Print all distinct elements of given array
  42. Given an array array, find the maximum j – i such that the element later is bigger


  1. Find pair in array with sum equal to given value(Approach 1)
  2. Find pair in array with difference equal to given value(Approach 2)
  3. Sort a given array by frequency of elements
  4. Print all distinct elements of given array(Approach 2)


  1. Print Next Greatest Element for each element of array

Bit Algorithms

  1. Check if a given number is power of 2 or not
  2. Check if a given number is even or odd
  3. Given a number return a number with last bit unset
  4. Count the number of set bits(Brian Kernighan's method)
  5. Find missing number in array(Approach 2)
  6. Find two repeating elements in given array(Approach 4)


  1. Fast multiplication of two numbers(Russian Peasant Multiplication)
  2. Babylonian Method to find Square root of a number
  3. Find missing number in array(Approach 1)
  4. Find two repeating elements in given array(Approach 1)

Hacker Rank


Warm up

  1. A Very Big Sum
  2. Diagnol Difference
  3. Plus Minus
  4. Simple Array Sum
  5. Solve Me First
  6. Staircase
  7. Time Conversion


  1. Angry Professor
  2. Chocolate Feast
  3. Cut The Sticks
  4. Find Digits
  5. Service Lane
  6. Sherlock And Squares
  7. Sherlock And The Beast
  8. Utopian Tree


1.Modified Kaprekar Number~New approach added by @madmantalking






Counting Elements

Prefix Sums


Stacks and Queues


Maximum Slice Problem

Prime and Composite numbers


Author: kumar91gopi
Source Code:

#ruby #algorithms #datastructures 

What is GEEK

Buddha Community

Algorithms and Data Structures in Ruby
 iOS App Dev

iOS App Dev


Your Data Architecture: Simple Best Practices for Your Data Strategy

If you accumulate data on which you base your decision-making as an organization, you should probably think about your data architecture and possible best practices.

If you accumulate data on which you base your decision-making as an organization, you most probably need to think about your data architecture and consider possible best practices. Gaining a competitive edge, remaining customer-centric to the greatest extent possible, and streamlining processes to get on-the-button outcomes can all be traced back to an organization’s capacity to build a future-ready data architecture.

In what follows, we offer a short overview of the overarching capabilities of data architecture. These include user-centricity, elasticity, robustness, and the capacity to ensure the seamless flow of data at all times. Added to these are automation enablement, plus security and data governance considerations. These points from our checklist for what we perceive to be an anticipatory analytics ecosystem.

#big data #data science #big data analytics #data analysis #data architecture #data transformation #data platform #data strategy #cloud data platform #data acquisition

Gerhard  Brink

Gerhard Brink


Getting Started With Data Lakes

Frameworks for Efficient Enterprise Analytics

The opportunities big data offers also come with very real challenges that many organizations are facing today. Often, it’s finding the most cost-effective, scalable way to store and process boundless volumes of data in multiple formats that come from a growing number of sources. Then organizations need the analytical capabilities and flexibility to turn this data into insights that can meet their specific business objectives.

This Refcard dives into how a data lake helps tackle these challenges at both ends — from its enhanced architecture that’s designed for efficient data ingestion, storage, and management to its advanced analytics functionality and performance flexibility. You’ll also explore key benefits and common use cases.


As technology continues to evolve with new data sources, such as IoT sensors and social media churning out large volumes of data, there has never been a better time to discuss the possibilities and challenges of managing such data for varying analytical insights. In this Refcard, we dig deep into how data lakes solve the problem of storing and processing enormous amounts of data. While doing so, we also explore the benefits of data lakes, their use cases, and how they differ from data warehouses (DWHs).

This is a preview of the Getting Started With Data Lakes Refcard. To read the entire Refcard, please download the PDF from the link above.

#big data #data analytics #data analysis #business analytics #data warehouse #data storage #data lake #data lake architecture #data lake governance #data lake management

Wasswa  Meagan

Wasswa Meagan


Basics of Data Structure Algorithms

Basics of Data Structure Algorithms

If I ask you what is your morning routine, what will you answer? Let me answer it for you. You will wake up in the morning, freshen up, you’ll go for some exercise, come back, bath, have breakfast, and then you’ll get ready for the rest of your day.

If you observe closely these are a set of rules that you follow daily to get ready for your work or classes. If you skip even one step, you will not achieve your task, which is getting ready for the day.

These steps do not contain the details like, at what time you wake up or which toothpaste did you use or did you go for a walk or to the gym, or what did you have in your breakfast. But all they do contain are some basic fundamental steps that you need to execute to perform some task. This is a very basic example of algorithms. This is an algorithm for your everyday morning.

In this article, we will be learning algorithms, their characteristics, types of algorithms, and most important the complexity of algorithms.

What are Data Structure Algorithms?

Algorithms are a finite set of rules that must be followed for problem-solving operations. Algorithms are step-by-step guides to how the execution of a process or a program is done on a machine to get the expected output.

  • Do not contain complete programs or details. They are just logical solutions to a problem.
  • Algorithms are expressible in simple language or flowchart.

Characteristics of an Algorithm in Data Structure

No one would follow any written instructions to follow a daily morning routine. Similarly, you cannot follow anything available in writing and consider it as an algorithm. To consider some instructions as an algorithm, they must have some specific characteristics :

1. Input: An algorithm, if required, should have very well-defined inputs. An algorithm can have zero or more inputs.

2. Output: Every algorithm should have one or more very well-defined outputs. Without an output, the algorithm fails to give the result of the tasks performed.

3. Unambiguous: The algorithm should be unambiguous and it should not have any confusion under any circumstances. All the sentences and steps should be clear and must have only one meaning.

4. Finiteness: The steps in the algorithm must be finite and there should be no infinite loops or steps in the algorithm. In simple words, an algorithm should always end.

5. Effectiveness: An algorithm should be simple, practically possible, and easy to understand for all users. It should be executable upon the available resources and should not contain any kind of futuristic technology or imagination.

6. Language independent: An algorithm must be in plain language so that it can be easily implemented in any computer language and yet the output should be the same as expected.

Data flow of the Algorithm in Data Structure

1. Problem: To write a solution you need to first identify the problem. The problem can be an example of the real-world for which we need to create a set of instructions to solve it.

2. Algorithm: Design a step-by-step procedure for the above problem and this procedure, after satisfying all the characteristics mentioned above, is an algorithm.

3. Input: After creating the algorithm, we need to give the required input. There can be zero or more inputs in an algorithm.

4. Processing unit: The input is now forwarded to the processing unit and this processing unit will produce the desired result according to the algorithm.

5. Output: The desired or expected output of the program according to the algorithm.

Why do we need Data Structure Algorithm?

Suppose you want to cook chole ( or chickpeas) for lunch. Now you cannot just go to the kitchen and set utensils on gas and start cooking them. You must have soaked them for at least 12 hours before cooking, then chop desired vegetables and follow many steps after that to get the delicious taste, texture, and nutrition.

This is the need for algorithms. To get desired output, you need to follow some specific set of rules. These rules do not contain details like in the above example, which masala you are using or which salt you are using, or how many chickpeas you are soaking. But all these rules contain a basic step-by-step guide for best results.

We need algorithms for the following two reasons :

1. Performance: The result should be as expected. You can break the large problems into smaller problems and solve each one of them to get the desired result. This also shows that the problem is feasible.

2. Scalability: When you have a big problem or a similar kind of smaller problem, the algorithm should work and give the desired output for both problems. In our example, no matter how many people you have for lunch the same algorithm of cooking chickpeas will work every single time if followed correctly.

Let us try to write an algorithm for our lunch problem :

1. Soak chickpeas in the night so that they are ready till the next afternoon.

2. Chop some vegetables that you like.

3. Set up a utensil on gas and saute the chopped vegetables.

4. Add water and wait for boiling.

5. Add chickpeas and wait until you get the desired texture.

6. Chickpeas are now ready for your lunch.

The real-world example that we just discussed is a very close example of the algorithm. You cannot just start with step 3 and start cooking. You will not get the desired result. To get the desired result, you need to follow the specific order of rules. Also, each instruction should be clear in an algorithm as we can see in the above example.

#algorithms in data structure #data structure algorithms #algorithms

Cyrus  Kreiger

Cyrus Kreiger


4 Tips To Become A Successful Entry-Level Data Analyst

Companies across every industry rely on big data to make strategic decisions about their business, which is why data analyst roles are constantly in demand. Even as we transition to more automated data collection systems, data analysts remain a crucial piece in the data puzzle. Not only do they build the systems that extract and organize data, but they also make sense of it –– identifying patterns, trends, and formulating actionable insights.

If you think that an entry-level data analyst role might be right for you, you might be wondering what to focus on in the first 90 days on the job. What skills should you have going in and what should you focus on developing in order to advance in this career path?

Let’s take a look at the most important things you need to know.

#data #data-analytics #data-science #data-analysis #big-data-analytics #data-privacy #data-structures #good-company

Samanta  Moore

Samanta Moore


SKP's Algorithms and Data Structures

Continuing on the Quick Revision of Important Questions for My Interviews. These Are Good Puzzles or Questions Related to Data Structures.

My Article Series on Algorithms and Data Structures in a Sort of ‘Programming Language Agnostic Way’. Few of the Algorithms and Data Structures in C, Few in C++, and Others in Core Java. Assorted Collection for Learning, Revising, Revisiting, Quick Refresh, and a Quick Glance for Interviews. You May Even Include them Directly for Professional or Open Source Efforts. Have Included Explanation Only for Few of These! Hope these turn out to be Really Helpful as per the Author’s Intention.

Data Structure — Interview Questions

#java #core java #data structures #dijkstra #core java basics #data structure using java #algorithms and data structures #java code examples #linked list in java #circular linked list