I started learning programming in the late 2019 when I enrolled in the Computer Science Class at College and now I am pretty comfortable with Python, HTML, CSS and JavaScript. I also know C and all the basics you need to work with C like Memory Allocation etc and sometime ago I started learning and implementing common Data Structures and Algorithms in C but left soon after starting because of another project.
Now is the time that I restart my Data Structures and Algorithms journey and learn as many as I can. And I will be documenting them here and will write a little intro about them. But first of all what are Data Structures and Algorithms.
Data Structures
A Data Structure is a format for storage, management and organization of data for efficient access and modification. Examples are Hash Tables, Linked Lists and Arrays etc.
Algorithm
An Algorithm is a step by step process of solving a problem. More specifically an algorithm in Computer Science is a process in which a data is taken as input, processed and a meaningful output is provided as a result. It is a tool for solving problems.
Sorting Example
As an example, we will see at one of the most fundamental alogrithm for solving one of the most fundamental problem in Computer Science, Sorting random numbers.
Consider we get a list of numbers of from 0 to 10 and they all are in random order like this.
int[] numbers = {5, 7, 9, 3, 6, 8, 1, 0, 10, 4, 2};
we provide the numbers list to a function that implements the sorting algorithm and it will return us list sorted in acsending order.
int[] sorted_nums = sort(numbers);
printf(sorted_nums);
/*
* {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
*/
First of all I will be learning as many Algorithms as I can in these three weeks starting from today and after that I will learn Data Structures for three weeks. Tomorrow I will first discuss about the Big O Notataion and the Efficiency of the Algorithms and the next day after that I will start learning algorithms one by one.