Data Structures, Algorithms, & Applications

Slides:



Advertisements
Similar presentations
Advanced Data Structures Sartaj Sahni
Advertisements

Data Structures & Algorithms Richard Newman Clip Art Sources s s s s
Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Lecture Notes 1/21/04 Program Design & Intro to Algorithms.
Time Complexity s Sorting –Insertion sorting s Time complexity.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
Lecture Notes 8/30/05 Program Design & Intro to Algorithms.
Simple Sort Algorithms Selection Sort Bubble Sort Insertion Sort.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
Lecture 5 Sorting. Overview Mathematical Definition.
Fall 2013 Instructor: Reza Entezari-Maleki Sharif University of Technology 1 Fundamentals of Programming Session 17 These.
COP 3530: Data Structures, Algorithms, & Applications Instructor: Kristian Linn Damkjer.
Data Structures, Algorithms, & Applications
CSE 221/ICT221 Analysis and Design of Algorithms Lecture 05: Analysis of time Complexity of Sorting Algorithms Dr.Surasak Mungsing
Fall 2013 Instructor: Reza Entezari-Maleki Sharif University of Technology 1 Fundamentals of Programming Session 17 These.
Introduction to Data Structures
CSE 1340 Introduction to Computing Concepts Class 1 ~ Intro.
Asymptotic Notation (O, Ω, )
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
Data Structures Engr. Umbreen sabir What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.
Chapter 5 Algorithms (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
Data Structures and Algorithms Dr. Manuel E. Bermudez Alter ego to Dr. Sartaj Sahni.
CMSC 2021 CMSC 202 Computer Science II for Majors Spring 2003 Mr. Frey (0101 – 0104) Mr. Raouf (0201 – 0204)
CSC 201 Analysis and Design of Algorithms Lecture 05: Analysis of time Complexity of Sorting Algorithms Dr.Surasak Mungsing
Data Structures, Algorithms, & Applications Instructor: Babak Alipour Slides and book: Sartaj Sahni.
Data Structures and Algorithms in Java AlaaEddin 2012.
1 CSE1301 Computer Programming: Where are we now in the CSE1301 syllabus?
Data Structures Dai Tian-Shyr
Computer Science I ISMAIL ABUMUHFOUZ | CS 180. CS 180 Description BRIEF SUMMARY: This course covers a study of the algorithmic approach and the object.
Data Structures, Algorithms, & Applications
ECS – Storyboarding and Introduction to Web Design
Data Structures, Algorithms, & Applications
CSC 321: Data Structures Fall 2017
May 17th – Comparison Sorts
COP 3503 FALL 2012 Shayan Javed Lecture 15
CSC 321: Data Structures Fall 2015
Syllabus Overview CSE 4309 – Machine Learning Vassilis Athitsos
Syllabus Overview CSE 6363 – Machine Learning Vassilis Athitsos
Computer Science 102 Data Structures CSCI-UA
CS 583 Fall 2006 Analysis of Algorithms
COMS W1004 Introduction to Computer Science and Programming in Java
slides created by Marty Stepp and Hélène Martin
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.
Introduction to Data Structures
slides adapted from Marty Stepp and Hélène Martin
CSE 373, Copyright S. Tanimoto, 2002 Performance Analysis -
Introduction CSE 373 Data Structures.
Data Structures: Introductory lecture
CS 201 Fundamental Structures of Computer Science
Sorting … and Insertion Sort.
Algorithms Key Revision Points.
slides created by Marty Stepp
Data Structures and Algorithms for Information Processing
slides created by Marty Stepp
Asst. Dr.Surasak Mungsing
Data Structures, Algorithms, & Applications
Sorting Rearrange a[0], a[1], …, a[n-1] into ascending order.
slides created by Marty Stepp
Administrivia- Introduction
CMSC201 Computer Science I for Majors Final Exam Information
slides created by Marty Stepp and Hélène Martin
Data Structures & Algorithms
Administrivia- Introduction
Dr. David Matuszek Spring, 2003
AP Free Response Strategies
Insertion Sort and Shell Sort
CSE 373 Sorting 2: Selection, Insertion, Shell Sort
Warmup Write a function to add two integer parameters and return the result.
CMPT 120 Lecture 26 – Unit 5 – Internet and Big Data
Presentation transcript:

Data Structures, Algorithms, & Applications Richard Newman (based on course by Sartaj Sahni)

Clip Art Sources www.barrysclipart.com www.livinggraphics.com www.rad.kumc.edu www.graphicmaps.com

What The Course Is About Data structures : representation and manipulation of data. All programs manipulate data. So all programs represent data Data manipulation requires an algorithm. Data: Streets in a city. Mapquest. Manipulation: Do something with the data. Add a new street. Close a street. Make a street one way. Find route from your home to nearest gas station. Input/output data. Data representation: simple variables…int, float array variables… int [], float [] Others to be studied in this course. Algorithm…sequence of steps that results in the performance of a specific task (find nearest gas station to home).

What The Course Is About Algorithm design methods needed to develop programs that do the data manipulation. The study of data structures and algorithms is fundamental to Computer Science. What we do in this course will be used in most of the follow-up courses you will take. Essential to become expert in what we do this semester. Else, you will be handicapped in later courses.

Prerequisites Java Asymptotic Complexity Big Oh, Theta, and Omega notations Java review … Chapter 1 Performance Analysis … Chapter 2 Asymptotic complexity … Chapter 3

Web Site www.cise.ufl.edu/~nemo/cop3530/ www.cise.ufl.edu/cop3530sp04/ www.cise.ufl.edu/~sahni/cop3530/ Handouts, syllabus, text, source codes, exercise solutions, lectures, assignments, past exams, past exam solutions, TAs, etc. Check twice weekly (48 hr apart)

Assignments Assignment guidelines Submission procedures Do Assignment 0 by next Friday. Must follow guidelines and submission procedures. Else there will be chaos. Submit jar files via CourseWorX night before class, hardcopy in class. Design and code documentation required for TA to assist in debugging.

Source Codes Read download and use instructions. Must have Java 1.2 or higher. See ProgramIndex.htm, AllNames.html and other html files produced by Javadoc for Java codes.

Discussion Sections Go to any one TA will answer your questions TA will go through a few exercises from the book Web site lists what is done in each meeting of the discussion section M 8,9 T 8,9,11 – all in CSE-221 W 3 – in TUR 2346

Organization of Text Three parts Part I … Chapters 1-4, Background Part 2 … Chapters 5-17, Data Structures Part 3 … Chapters 18-22, Algorithms Each chapter … concepts + applications

Grades 25% for assignments 25% for each test (3 exams) Exam 1 – Feb 15 Exam 2 – Mar 31 Exam 3 – Apr 29 7:30 am

Grades (Rough Cutoffs) B+ >= 75% B >= 70% C+ >= 65% C >= 60% D+ >= 55% D >= 50%

Classic Problem: Sorting Rearrange a[0], a[1], …, a[n-1] into ascending order. When done, a[0] <= a[1] <= … <= a[n-1] 8, 6, 9, 4, 3 => 3, 4, 6, 8, 9 Strictly speaking, nondecreasing order: 2, 2, 3, 6, 8, 8, 10.

Sort Methods Insertion Sort Bubble Sort Selection Sort Count Sort Shaker Sort Shell Sort Heap Sort Merge Sort Quick Sort First 5 are simple (conceptually and to program). First 4 done in chapters 2 and 3. Shaker sort and shell sort are in the enrichment section of the text’s Web site. The remaining three are done in the algorithm design chapters of the text.

Insert An Element Given a sorted list/sequence, insert a new element Result 3, 5, 6, 9, 14

Insert an Element 3, 6, 9, 14 insert 5 Compare new element (5) and last one (14) Shift 14 right to get 3, 6, 9, , 14 Shift 9 right to get 3, 6, , 9, 14 Shift 6 right to get 3, , 6, 9, 14 Insert 5 to get 3, 5, 6, 9, 14

Insert An Element // insert t into a[0:i-1] int j; for (j = i - 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t;

Insertion Sort Start with a sequence of size 1 Repeatedly insert remaining elements

Insertion Sort Sort 7, 3, 5, 6, 1 Start with 7 and insert 3 => 3, 7

Insertion Sort for (int i = 1; i < a.length; i++) {// insert a[i] into a[0:i-1] // code to insert comes here } Top-down approach to program development – pseudocode in comments

Insertion Sort for (int i = 1; i < a.length; i++) {// insert a[i] into a[0:i-1] int t = a[i]; int j; for (j = i - 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t; } Turn pseudocode into code.

Correctness Program verification Testing Debugging Mathematical (logical) correctness Cleanroom development Testing Black box White (clear) box Debugging Strategies

Next – Lecture 2 Read 3.5 Complexity of insertion sort