A data structure is a named location that can be used to store and organise data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimised computer programs.
In computer science, a data structure is a data organisation, management, and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.
In mathematics and computer science, an algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always unambiguous and are used as specifications for performing calculations, data processing, automated reasoning, and other tasks.
Getting started with DSA
Getting started with DSA is an anthology of Data Structures and Algorithms in all
popular programming languages.Open and solve an issue(which can be raised by you
too) inside the microbyte to get started with your contibution by adding on new Data
Structurs/Algorithms to the microbyte.
— Kevin Paulose (@Kevinpaulose05)
0-1 Knapsack
0-1 Knapsack is a classic Dynamic Programming problem. If you haven't yet studied
DP do give it a shot. In this Mirco-Byte we will focus on how this concept can be
extended to solve other DP problems having similar patterns.
— Sreejan Chaudhury (@Sreejan-22)
Array in Javascript
Arrays are one of the most used data structures. You probably have used it a lot,
but are you aware of the runtimes many array operations? In this microbyte, we are
going deeper into the most common operations and their runtimes.
— Divyansh Rastogi (@divyanshrastogi51)
BinaryTree_LevelOrderTraversal_Types
Unlike arrays and linked lists which are linear data structures, binary tree is a
hierarchical data structure, that is, data in binary trees are stored in a
hierarchical fashion. It is similar to how we draw a family tree or represent the
different directories and files in the filesystem. In this MicroByte, we'll
understand Level Order Traversal in Binary Trees and the different kinds of
questions based on this concept.
— K Anjali Kamath (@Anjalikamath)
Kadane's Algorithm
Kadane's algorithm works by maintaining the start position of a subarray and
repeatedly looking at the next element in the array and deciding to either.
Discarding the subarray and starting a new subarray after that element. Let's look
into it more properly by going through this MicroByte.
— Jeevan Chandra Joshi (@G1Joshi)
Sorting Algorithms
This MicroByte is aimed to understanding different sorting algorithms, along with
their time and space complexity analysis.
— Divya Chopra (@divya1509)
string_search
In this micro-byte, we will be going through the working of the two most famous
string matching algorithms: Rabin Karp and KMP string matching algorithm. The
speciality of both these algorithms is that they achieve linear time complexity for
average case, making them far more superior to naive string matching algorithm
which completes string matching in quadratic time for all cases.
— Shubham Gupto (@IamShubhamGupto)
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!