*The course is available in the following languages: English, Russian, Ukrainian

Course program

- Basic denotations. Asymptotic complexity estimation. Classification of algorithms.

- Bubble sort. Insertion sort. Quick sort. Merge sort. Heapsort. Complexity estimation of sort algorithms.

- Singly linked list. Doubly linked list. Queue. Stack. Basic lists operations implementation.

- Binary trees. Balanced and unbalanced trees (B-trees). Tree representation as an array and as a linked structure. Recursive and non-recursive tree traversal algorithms. Binary search AVL tree. Red-black tree. An example of using trees: the Huffmann algorithm.

- Basic algorithms of dynamic programming.

- Coin exchange problem. Knapsack problem.

- The concept of a graph. Graph representation. Connected and disconnected graphs. Connectivity components. Spanning tree. Graphs applications.

- Breadth-first search. Finding the shortest path (Dijkstra's algorithm). Depth-first search. Topological sorting. Finding bridges in a graph. Loops in a graph.

- Usage and implementation of genetic algorithms.

- RSA algorithm. ElGamal algorithm. Attacks on cryptographic algorithms.

- Creation multi-threaded environment algorithms.

Sign up

Please fill out the form. Our managers will contact you shortly.