For the convenience of JavaRush students, we decided to collect lectures and articles about the most important topics in programming. The third selection is about algorithms. In the miniguide, we briefly outline the essence of the articles, and if you follow the link, you can learn more about the topic of interest. Add the collection to your bookmarks and return to it when needed.
Materials about algorithms
Articles and lectures
The Harvard course
"CS50. Fundamentals of Programming" covers the basic knowledge that a developer must have. This lecture talks about an algorithm called merge sort. This algorithm is recursive; it breaks one large sorting problem into subtasks, the execution of which makes it closer to solving the original large problem. This lecture is available in both text and video formats.
The next lecture from the Harvard course "CS50. Fundamentals of Programming" talks about selection sort. Using the example of sorting an array of numbers, this sorting algorithm is discussed in the lecture. As with the previous lecture, you can read it or watch the video, depending on how you find it easier to absorb the information.
Another lecture from a Harvard course translated by JavaRush into Russian. The main idea of this algorithm (insertion sort) is to divide the array into two parts, sorted and unsorted. At each step of the algorithm, the number moves from the unsorted to the sorted part.
The lecturer uses simple examples to explain how the bubble sort algorithm works. This algorithm is very clear and easiest to implement. That's why beginners love it very much. Read the lecture and watch the video to learn bubble sort.
Sorting elements is one of the categories of algorithms that a developer must get used to. In this article, the author examines sorting algorithms: simple sort, selection sort, insertion sort, shuttle sort, Shell sort and others. The material attached to the article will allow you to learn even more, since this is a review article. And its purpose is to give a short introduction.
This is a translation of an article about algorithms for writing code. The author of the translation assumes that the article will be read by people who already know the basics of the language and want to slightly expand their knowledge of algorithms. Common approaches to solving the problems presented below include: sorting, binary search, hash tables,
heaps , trees,
depthfirst search ,
dynamic programming .
Introductory article about algorithms. Step by step, using the example of a problem that needs to be solved, the text explains algorithms and how to use them. At the end of the lecture there is a list of useful sources with information about algorithms.
Algorithms in “interview questions and answers”
Various types of algorithms are used in projects more often than you might think. For example, we need to sort some data according to certain parameters (columns) so that we can navigate through it without much effort. Therefore, during job interviews, they may be asked about a particular basic algorithm, and perhaps given the task of implementing it using code. In this article you can familiarize yourself with some basic algorithms and specific examples of their implementation in Java.
In a previous article, the author talked about various algorithms for sorting arrays and the socalled greedy algorithm. This article talks about graphs and algorithms related to them.
Bonus
A very detailed review of the book “Grocking Algorithms” by Aditya Bhargava. The author examines each section of the book step by step: is the topic presented in an accessible way, is there enough information provided. Read the review and decide whether to buy a book about algorithms.
This book is dedicated to the study and use of data structures and algorithms in programming. She will discuss how data structures determine the way data is organized in memory, and how algorithms perform various operations on these structures.
Other materials in the series: 

GO TO FULL VERSION