Courses
- Data Sructures (10117) תקציר הקורס:
- Design & Analysis of Algorithms (10120) תקציר הקורס:
Abstract:
Issues of the course:
Recursion. Recursion as an interdisciplinary thinking paradigm. Analysis of Algorithms and Mathematical Foundations: Growth of f?unctions and Asymptotic notations, Summations, Recurrences: The Substitution, Iteration and Master Methods. Searching for a term in a sorted and an unsorted list, minimum, maximum, merging sorted series, analyzing the complexity of their run times.
Abstract Data Types, the Concept of Implementation, Data Types in C. Lists: Linked Lists, the Linked List as a Data Structure, Circular and Double Linked Lists. Stacks, Queues, Infix, Postfix, Prefix and Evaluating Expressions.
Trees: Binary Trees and Traversals, Binary Search Trees and Josephus problem, General Trees, Balanced Trees.
Heaps and Heapsort, analysis of Heapsort . Sorting and Searching:, Quicksort,
analysis of Quicksort, Sorting in Linear Time : Bucket sort, Radix sort, Counting sort . Median and Order Statistics, Select algorithm and their applications. Sequential/ Binary/ Tree Searching. Hash Tables.Abstract:
Introduction to Linear Programming, Simplex Method, Primal Problem and Dual Problem. Transportation Problem, Transportation Simplex Method, Assignment Problem – Hungarian Algorithm. Dynamic Programming.
Graph Algorithms: different methods of representing graphs, finding transitive closure: Matrix Multiplication and Warshall's Algorithm, Euler and Hamiltonian Path. BFS and DFS Algorithms ,Topological Sort, Strongly Connected Components, Hyper Graph, Bridges and Biconnected components, Pert. Trees and Greedy Algorithms: Huffman codes. Shortest Paths: from single source and between all pairs of vertices – Dijkstra / Bellman Ford / Floyd Warshall algorithms. Single-source Shortest Paths in DAG (Directed Acyclic Graph).
Minimal Spanning Trees, Kruskal and Prim algorithms. Euler and Hamiltonian Path.