## Algorithms I

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code Number of ECTS Credits Allocated Type of Course Unit * 460-2001/06 4 ECTS credits Optional First Cycle Summer Semester Face-to-face Czech, English Course succeeds to compulsory courses of previous semester DVO26 doc. Mgr. Jiří Dvorský, Ph.D. This subject is the introductory programming course. Students are expected to have the basic C++ knowledge and high school math knowledge. Discussed algorithms and data structures will be demonstrated in C++. A large emphasis is placed on practical implementation discussed algorithms and data structures. Students are encouraged analysis and synthesis solutions to the problems of smaller units. Acquaint students with the basics of structured programming, the basics of C + +. After completing the course, students will be able to: Work with integrated development environment for C++. Define a describe basic programming constructions. Develop and debug a simple program C++. Use data structures such as array, list, etc. Write a recursive function. Use sorting and searching algorithms in their programs. Algorithm. Algorithmic problem solving strategies. Important problem types. Analysis of complexity of algorithms. Brute force strategy. SelectSort. BubbleSort. Sequential search. Convex hull problem. Closest pair problem. Complete search strategy. Traveling salesman problem. Knapsack problem. Graph traversal. Decrease and conquer strategy. InsertSort. Generate permutations and subsets. Binary search algorithm. Finding the median. Interpolation search. Searching and insertion in a binary search tree. Divide and conquer strategy. QuickSort. MergeSort. Convex hull problem. Closest pair problem. Computer seminars Iterative algorithms complexity analysis. Recursive algorithms complexity analysis. Implementation of convex hull problem, closest pair problem. Traveling salesman problem - experiments with complete search solution. Graph traversal algorithms usage. Generate permutations and subsets. Implementation of binary search algorithm, interpolation search algorithm and median finding. Binary search tree implementation. Implementation of divide and conquer strategy solutions. LEVITIN, Anany. Introduction to the design. 3rd ed. Boston: Pearson, 2012. ISBN 978-0-13-231681-1. CORMEN, Thomas H. Introduction to algorithms. 2nd ed. Cambridge, Mass.: MIT Press, 2001. ISBN 02-620-3293-7. SEDGEWICK, Robert. Algorithms in C. 3rd ed. Reading, Mass: Addison-Wesley, 1998. ISBN 978-020-1350-883. LEVITIN, Anany. Introduction to the design. 3rd ed. Boston: Pearson, 2012. ISBN 978-0-13-231681-1. CORMEN, Thomas H. Introduction to algorithms. 2nd ed. Cambridge, Mass.: MIT Press, 2001. ISBN 02-620-3293-7. SEDGEWICK, Robert. Algoritmy v C. Praha: SoftPress, 2003. ISBN 80-864-9756-9. WRÓBLEWSKI, Piotr. Algoritmy. Brno: Computer Press, 2015. ISBN 978-80-251-4126-7. WIRTH, N. Algoritmy a štruktúry údajov, Alfa, Bratislava 1989. Studijní opora (skripta), dostupné na stránkách garanta předmětu, www.cs.vsb.cz/dvorsky STROUSTRUP, Bjarne. The C programming language. Fourth edition. Upper Saddle River, NJ: Addison-Wesley, 2013. ISBN 978-0321563842. SCHILDT, Herbert. Teach yourself C. 3rd ed. Berkeley: Osborne McGraw-Hill, 1998. ISBN 978-0078823923. STROUSTRUP, Bjarne. C programovací jazyk. Praha: Softwarové Aplikace a Systémy, 1997. ISBN 80-901-5072-1. VIRIUS, Miroslav. Pasti a propasti jazyka C. 2., aktualiz. a rozš. vyd. Brno: CP Books, 2005. ISBN 80-251-0509-1. SCHILDT, Herbert. Nauč se sám C: [poznej, vyzkoušej, používej]. Praha: SoftPress, 2001. ISBN 80-864-9713-5. ECKEL, Bruce. Myslíme v jazyku C. Praha: Grada, 2000. Knihovna programátora (Grada). ISBN 80-247-9009-2. Lectures, Tutorials Tasks are not Defined