Course detail
Algorithms
FEKT-BALGAcad. year: 2016/2017
Overview of fundamental data structures and their exploitation.
Principles of dynamic memory allocation.
Specification of abstract data types (ADT).
Specification and implementation of ADT's: lists, stack and its exploition, queue, set, array, searching table, graph, binary tree.
Algorithms upon the binary trees.
Searching: sequential, in the ordered and in not ordered array, searching with the guard (sentinel), binary search, search tree,
balanced trees (AVL). Searching in hash-tables.
Ordering (sorting), principles, sorting without the moving of items, sorting with multiple keys. Most common methods of sorting: Select-sort, Bubble-sort, Heap-sort, Insert-sort and its variants, Shell-sort, recursive and non-recursive notation of the Quick sort, Merge-sort,List-merge-sort, Radix-sort.
Recursion and backtrack algorithms. Searching the patterns in the text. Proving of correctness of programs, construction of proved programs.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
2. Specification, implementation and exploitation of ADT list.
3. Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of stack.
4. ADT array, set, graph, binary tree.
5. Algorithms upon the binary tree.
6. Searching, sequential, in the array, binary search.
7. Binary search trees, AVL tree.
8. Hashing-tables.
9. Ordering (sorting), principles, without movement, multiple key.
10. Most common methods of sorting of arrays, sorting of files.
11. Recursion, backtracking algorithms.
12. Proving the programs, costruction of proved programmes.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Amsbury, W: Data Structures: From Arrays to Priority Queues.
Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998
Cormen, T.H. ,Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms.
Honzík, J.,Hruška, T.,Máčel, M.: Vybrané kapitoly z programovacích technik, Ed.stř.VUT Brno,1991.
Horovitz, Sahni: Fundamentals of Data Structures.
Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
Kruse, R.L.>Data Structures and Program Design. Prentice- Hall,Inc. 1984
Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
Specification, implementation and exploition of ADT list.
Specification, implementation and exploition of ADT stack, queue. Numeration of expressions with the use of stack.
ADT array, set, graph, binary tree.
Algorithms upon the binary tree.
Searching, sequential, in the array, binary search.
Binary search trees, AVL tree.
Hashing-tables.
Ordering (sorting), principles, without movement, multiple key.
Most common methods of sorting of arrays, sorting of files.
Recursion, backtracking algorithms.
Proving the programs, construction of proved programs.