I created and fill this repository with only one goal — to help beginner developers better understand the essence of basic things in IT, because I remember how difficult it was for me to understand these truly fundamental things on my own. I tried to organize the code as neatly and clearly as possible so that it would be easier for beginners to navigate. I also specifically separated the description and implementation of functions so that you could get used to the proper formatting of code in your future projects.
The local repository of the implementation of a particular structure or algorithm also contains README_RU.md
, which completely repeats the English analogue for Russian-speaking developers who are not very good with English, but I still advise you to use the original README.md
.
As you can see, I have arranged the data structures by complexity level. This is the level I advise you to study them by. If you know the structure of a queue, then you can safely skip the stack (of course, provided that you understand it) and start studying linked lists. The main thing is to be honest with yourself, there is nothing shameful in ignorance - it is shameful to not learn.
Finally, I want to make a small clarification: this repository will not cover the basic syntax and/or concepts of the language. For example, what a function is, what return
means, how loops work, and so on. If you have moved to this stage consciously, then you are already familiar with all of the above. If a description of such things is really necessary, please let me know.
You need to move to the working directory and clone this repository with HTTPS:
git clone https://github.com/falafe1y/ForBeginners.git
or SSH:
git clone [email protected]:falafe1y/ForBeginners.git
For compilation, you need to specify the main.cpp
file, the file with the implementation of the algorithm or structure you are interested in, for example, BubbleSort.cpp
, the compilation flag, and the name of the binary file, for example, main
:
g++ main.cpp BubbleSort.cpp -o main
In this repository you will find fundamental algorithms and data structures in C++, namely:
-
Algorithms:
Big O:
- Examples of complexity assessment
Sort:
- Bubble sort
- Insert sort
- Selection sort
- Counting sort
- Radix sort
- Shaker sort
- Fast sort
- Heap sort
- Merge sort
Seacrh:
- Linear search
- Binary search
- Hash-table search
- Tree search
- Graph search
-
Data structs:
- Stack
- Queue
- Linked list
- Tree
- Graph
- Vector
- Heap
- Hash-table
If you have any questions, want to suggest an idea for implementation, or simply leave feedback, send your messages to:
[email protected] or [email protected]