Instructor: Dr. Sahar Shabanah Fall 2010. Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.

Slides:



Advertisements
Similar presentations
Algorithm Design Techniques
Advertisements

Types of Algorithms.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
Analysis & Design of Algorithms (CSCE 321)
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
CSCE 210 Data Structures and Algorithms
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Th. 9/3/2009.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
TDDB57 DALG-C, DALG Exam Requirements Jan Maluszynski - HT 2006DALG-C.1 TDDB57 – DALG-C Examination Requirements.
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Course Review COMP171 Spring Hashing / Slide 2 Elementary Data Structures * Linked lists n Types: singular, doubly, circular n Operations: insert,
Chapter 10: Algorithm Design Techniques
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 Introduction/Overview Wed. 9/5/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2005 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 9/7/05.
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Data Structures, Spring 2004 © L. Joskowicz 1 DAST – Final Lecture Summary and overview What we have learned. Why it is important. What next.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Dynamic Sets and Data Structures Over the course of an algorithm’s execution, an algorithm may maintain a dynamic set of objects The algorithm will perform.
TK3043 Analysis and Design of Algorithms Introduction to Algorithms.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
CS112A1 Spring 2008 Practice Final. ASYMPTOTIC NOTATION: a)Show that log(n) and ln(n) are the same in terms of Big-Theta notation b)Show that log(n+1)
Fundamentals of Algorithms MCS - 2 Lecture # 7
DATA STRUCTURES (CS212D) Week # 1: Overview & Review.
10/20/20151 CS 3343: Analysis of Algorithms Review for final.
Algorithm Paradigms High Level Approach To solving a Class of Problems.
 Analysis Wrap-up. What is analysis?  Look at an algorithm and determine:  How much time it takes  How much space it takes  How much programming.
+ Review CS302 Spring 2013 David Kauchak. + Admin Final posted on the course web page on Monday due Sunday at 11:59pm time-boxed (3-4 hours) You may use:
INTRODUCTION. What is an algorithm? What is a Problem?
December 4, Algorithms and Data Structures Lecture XV Simonas Šaltenis Aalborg University
CS Data Structures II Review & Final Exam. 2 Topics Review Final Exam.
CS223 Advanced Data Structures and Algorithms 1 Review for Final Neil Tang 04/27/2010.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Runtime O(VE), for +/- edges, Detects existence of neg. loops
Review for Final Exam – cs411/511 Definitions (5 questions, 2 points each) Algorithm Analysis (3 questions, 3 points each) General Questions (3 questions,
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
Course Review Fundamental Structures of Computer Science Margaret Reid-Miller 29 April 2004.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
CSE 340: Review (at last!) Measuring The Complexity Complexity is a function of the size of the input O() Ω() Θ() Complexity Analysis “same order” Order.
Course Info Instructor U.T. Nguyen Office: CSEB Office hours: Tuesday, 14:30-15:30 Thursday, 12:00-12:45 By.
Data Structures and Algorithms in Java AlaaEddin 2012.
Algorithms Design and Analysis CS Course description / Algorithms Design and Analysis Course name and Number: Algorithms designs and analysis –
Course Review Fundamental Structures of Computer Science Margaret Reid-Miller 28 April 2005.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
2016/3/13Page 1 Semester Review COMP3040 Dept. Computer Science and Technology United International College.
CS16: Introduction to Algorithms and Data Structures
CSCE 210 Data Structures and Algorithms
Welcome to the Course of Advanced Algorithm Design
Data Structures and Algorithms
CSE 326: Data Structures: Advanced Topics
Midterm Review.
Exam Hints.
Data Structures and Algorithms
CS 3343: Analysis of Algorithms
Types of Algorithms.
CS 3343: Analysis of Algorithms
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
CS 3343: Analysis of Algorithms
CS 3343: Analysis of Algorithms
Types of Algorithms.
CS 3343: Analysis of Algorithms
CS 3343: Analysis of Algorithms
Copyright © Aiman Hanna All rights reserved
Types of Algorithms.
Major Design Strategies
Major Design Strategies
Presentation transcript:

Instructor: Dr. Sahar Shabanah Fall 2010

Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in Java”, 4 th Edition, 2005, Wiley, ISBN: Lecture slides will be posted on the course page before each lecture. Read thru the lecture notes and the assigned readings before class. Be prepared to ask questions. Class website:

Grading 20% Lab & Assignments 20% Mid-Term Exam 20% Final Project 40% Final exam

Course Content Object Oriented Design Arrays & Linked Lists Analysis tools Stacks & Queues Lists Trees Heaps Maps & Tables Sorting & Searching Algorithms

Data Structures A data structure in computer science is a way of storing data to be used efficiently. A data structure is a representation of a finite data set [2]. Data Structures examples are Array, List, Linked list, Doubly linked list, Stack, Queue, Hash table, Graph, Heap, Tree, Binary Search tree, Red-Black tree, etc

Data Structure Basic Operations Queries operations get information about the data structure. Search (data structure, key): searches for a given key in a data structure. Sort (data structure): sorts elements of a data structure. Minimum(datastructure): finds the element with the minimum value in a data structure.

Data Structure Basic Operations Maximum (data structure): finds the element with the maximum value in a data structure. Successor (data structure, element): finds the element that succeeds the given element in a data structure. Predecessor (data structure, element): finds the element that precedes the given element in a data structure.

Data Structures Basic Operations Modifying operations: Change the status of a data structure. Insert (data structure, element): inserts an element into a data structure. Delete (data structure, element): deletes an element from a data structure.

Algorithms An algorithm is a sequence of computational steps that transform the input into the output. Algorithms can be classified according to the problem-solving approach that they use or the problems that they solve.

Algorithms with similar problem- solving approach Recursive Algorithms: convert the problem into sub-problems, then solve each one using recursion. Backtracking Algorithms: return a solution if found or recur through the problem with every possible choice until solution or failure is reached. Brute Force Algorithms: try all possibilities until a satisfactory solution is found.

Algorithms with similar problem- solving approach Divide and Conquer Algorithms: divide the problem into smaller sub-problems of the same type, and solve these sub-problems recursively, then combine the solutions to the sub-problems into a solution to the original problem. Dynamic Programming Algorithms: find the best solution of multiple exist solutions. Examples are Knapsack and Activity Selection Problem. Brute Force Algorithms: try all possibilities until a satisfactory solution is found.

Algorithms with similar problem- solving approach Greedy Algorithms: get the best solution at the moment, without regard for future consequences. By choosing a local optimum at each step, it will end up at a global optimum. Examples are Prim’s and Dijkstra’s algorithms. Branch and Bound Algorithms: a tree of sub-problems is formed. Randomized Algorithms: use a random number at least once during the computation to make a decision.

Algorithms solve similar problems Sorting Algorithms: Bubble Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort, Heap Sort, Quick Sort, Bucket Sort, etc. Linear-Time Sorting: Counting Sort, Radix Sort, Bucket Sort, etc. Graph Algorithms: Breadth First Search (Bfs), Depth First Search (Dfs), Topological Sort, Strongly Connected Components, Generic Minimum Spanning Tree, Kruskal’S, Prim’S, Sin- gle Source Shortest Path, Dijkstra’S, etc.

Algorithms solve similar problems Searching Algorithms: List Search: Linear Search, Binary Search, etc. Tree Search: Breadth First Search, Depth First Search, etc. Informed Search: Best-First Search, A*, etc. String Matching: Naïve String Matching, Knuth- Morris-Pratt, Boyer-Moore, etc.

Java Programming Basics Base Types: Objects Enum Types Methods Expressions Control flow Arrays Simple Input and Output

Object-Oriented Design Intro Inheritance Polymorphism Exceptions Interfaces and abstract Classes Casting Generics