Analysis of Searching Algorithms

Size: px
Start display at page:

Download "Analysis of Searching Algorithms"

Transcription

1 CS 4/56101 Design and Analysis of Algorithms Kent State University Dept. of Math & Computer Science LECT-4 2 Analysis of Searching Algorithms 3 1

2 Search LECT-04, S-4 Sequential Search int SequentialSearch(List list, KeyType target) int location; for (location = 0; location < list.count; location++) if (EQ(list.entry[location].key, target)) return location; return -1; LECT-04, S-5 2

3 Binary Search 6 Binary Search The method date back at least to 1946, but the first version free of errors and unnecessary restrictions seems to appeared only in 1962! One study showed that about 90% of professional programmers fail to code binary search correctly, even after working on it one full hour. LECT-04, S-7 3

4 Idea Start with an ordered list In searching an ordered list: first compare the target to the key in the center of the list. If it is smaller, restrict the search to the left half; otherwise restrict the search to the right half, and repeat. In this way, at each step we reduce the length of the list to be searched by half. < target >= target bottom top LECT-04, S-8 Binay1Search /* RecBinary1Search: front end for RecBinary1. */ int RecBinary1Search(List list, KeyType target) return RecBinary1(list, target, 0, list.count-1); LECT-04, S-9 4

5 Binary1Search int RecBinary1(List list, KeyType target, int bottom, int top) int middle = -1; if (bottom < top) /* The list has size greater than 1. */ middle = (top + bottom) / 2; if (GT(target, list.entry[middle].key)) /* Reduce to the top half of the list.*/ middle = RecBinary1(list, target, middle+1, top); else /* Reduce to the bottom half of the list.*/ middle = RecBinary1(list, target, bottom, middle); else if (bottom == top) /* The list has exactly 1 entry. */ if (EQ(target, list.entry[top].key)) middle = top; return middle; bottom bottom middle <target top middle >= target top >= target >=target top >= target Middle=10 target=12 target=7 Target=10 LECT-04, S-10 Binary Search with Equality Check Binary1 may make unnecessary iteration, because it may fail to recognize that middle is the target! LECT-04, S-11 5

6 Binary2 Search /* RecBinary2Search: front end for RecBinary2. */ int RecBinary2Search(List list, KeyType target) return RecBinary2(list, target, 0, list.count-1); LECT-04, S-12 Recursive Binary2 int RecBinary2(List list, KeyType target, int bottom, int top) int middle = -1; if (bottom <= top) middle = (top + bottom) / 2; if (LT(target, list.entry[middle].key)) /* Reduce to the bottom half.*/ middle = RecBinary2(list,target,bottom,middle-1); else if (GT(target, list.entry[middle].key) /* Reduce to the top half.*/ middle = RecBinary2(list, target, middle + 1, top); return middle; LECT-04, S-13 6

7 Analysis: Which Version is Better (Vote) 14 Comparison Tree The comparison tree of an algorithm is obtained by tracing the action of the algorithm, representing each comparison of keys by a vertex of the tree (which we draw as a circle). LECT-04, S-15 7

8 Comparison Tree for Binary1 Search (with 10 keys) Each node represents 1 comparison. Height represents worst cast running time. LECT-04, S-16 Comparison Tree for Binary1 Search (with 10 keys) External Path Length = (4x5)+(6x4)+(4x5)+(6x4)=88 Half of the paths are successful half of them are unsuccessful. Average path length = 44/10=4.4 for both cases. LECT-04, S-17 8

9 Comparison Tree for Binary2Search with n=10 keys (compact drawing) Each node, except for the last successful one, represents 2comparisons. Height represents worst cast running time. LECT-04, S-18 Comparison Tree for Binary2Search with n=10 keys (compact drawing) Average successful search: 1+(2x3)+(4x5)+(3x7)=48; 48/10=4.8 Average unsuccessful search: 6x5+8x6=78; 78/ LECT-04, S-19 9

CS302 - Data Structures using C++

CS302 - Data Structures using C++ CS302 - Data Structures using C++ Topic: Recursion - Examples Kostas Alexis CS302 - Data Structures using C++ Topic: The Binary Search Kostas Alexis The Binary Search Assumes and exploits that the input

More information

6. Asymptotics: The Big-O and Other Notations

6. Asymptotics: The Big-O and Other Notations Chapter 7 SEARCHING 1. Introduction, Notation 2. Sequential Search 3. Binary Search 4. Comparison Trees 5. Lower Bounds 6. Asymptotics: The Big-O and Other Notations Outline Transp. 1, Chapter 7, Searching

More information

Algorithm for siftdown(int currentposition) while true (infinite loop) do if the currentposition has NO children then return

Algorithm for siftdown(int currentposition) while true (infinite loop) do if the currentposition has NO children then return 0. How would we write the BinaryHeap siftdown function recursively? [0] 6 [1] [] 15 10 Name: template class BinaryHeap { private: int maxsize; int numitems; T * heap;... [3] [4] [5] [6] 114 0

More information

C/C++ Programming Lecture 18 Name:

C/C++ Programming Lecture 18 Name: . The following is the textbook's code for a linear search on an unsorted array. //***************************************************************** // The searchlist function performs a linear search

More information

Search Lesson Outline

Search Lesson Outline 1. Searching Lesson Outline 2. How to Find a Value in an Array? 3. Linear Search 4. Linear Search Code 5. Linear Search Example #1 6. Linear Search Example #2 7. Linear Search Example #3 8. Linear Search

More information

CS159. Nathan Sprague. November 9, 2015

CS159. Nathan Sprague. November 9, 2015 CS159 Nathan Sprague November 9, 2015 Recursive Definitions Merriam Websters definition of Ancestor: Ancestor One from whom a person is descended [...] Here is a recursive version: Ancestor One s parent.

More information

CSCI 136 Data Structures & Advanced Programming. Lecture 12 Fall 2018 Profs Bill & Jon

CSCI 136 Data Structures & Advanced Programming. Lecture 12 Fall 2018 Profs Bill & Jon CSCI 136 Data Structures & Advanced Programming Lecture 12 Fall 2018 Profs Bill & Jon Last Time Assertions SLL Improvements Tail pointers Circularly Linked Lists Doubly Linked Lists Practice with recursion

More information

QUIZ. 0] Define arrays 1] Define records 2] How are arrays and records: (a) similar? (b) different?

QUIZ. 0] Define arrays 1] Define records 2] How are arrays and records: (a) similar? (b) different? QUIZ 0] Define arrays 1] Define records 2] How are arrays and records: (a) similar? (b) different? 1 QUIZ 3] What are the 4 fundamental types of algorithms used to manipulate arrays? 4] What control structure

More information

Lecture 6 Sorting and Searching

Lecture 6 Sorting and Searching Lecture 6 Sorting and Searching Sorting takes an unordered collection and makes it an ordered one. 1 2 3 4 5 6 77 42 35 12 101 5 1 2 3 4 5 6 5 12 35 42 77 101 There are many algorithms for sorting a list

More information

Recursion. Chapter 7. Copyright 2012 by Pearson Education, Inc. All rights reserved

Recursion. Chapter 7. Copyright 2012 by Pearson Education, Inc. All rights reserved Recursion Chapter 7 Contents What Is Recursion? Tracing a Recursive Method Recursive Methods That Return a Value Recursively Processing an Array Recursively Processing a Linked Chain The Time Efficiency

More information

CS261 Data Structures. Ordered Array Dynamic Array Implementation

CS261 Data Structures. Ordered Array Dynamic Array Implementation CS261 Data Structures Ordered Array Dynamic Array Implementation Recall Arrays Operations Add O(1+) for dynamic array Contains O(n) Remove O(n) What if our application needs to repeatedly call Contains

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 10 Recursion and Search MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to

More information

Revision Statement while return growth rate asymptotic notation complexity Compare algorithms Linear search Binary search Preconditions: sorted,

Revision Statement while return growth rate asymptotic notation complexity Compare algorithms Linear search Binary search Preconditions: sorted, [1] Big-O Analysis AVERAGE(n) 1. sum 0 2. i 0. while i < n 4. number input_number(). sum sum + number 6. i i + 1 7. mean sum / n 8. return mean Revision Statement no. of times executed 1 1 2 1 n+1 4 n

More information

Ch 8. Searching and Sorting Arrays Part 1. Definitions of Search and Sort

Ch 8. Searching and Sorting Arrays Part 1. Definitions of Search and Sort Ch 8. Searching and Sorting Arrays Part 1 CS 2308 Fall 2011 Jill Seaman Lecture 1 1 Definitions of Search and Sort! Search: find an item in an array, return the index to the item, or -1 if not found.!

More information

CS171 Final Practice Exam

CS171 Final Practice Exam CS171 Final Practice Exam Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 150 minutes to complete this exam. Read each problem carefully, and review your

More information

Module 08: Searching and Sorting Algorithms

Module 08: Searching and Sorting Algorithms Module 08: Searching and Sorting Algorithms Topics: Searching algorithms Sorting algorithms 1 Application: Searching a list Suppose you have a list L. How could you determine if a particular value is in

More information

1 Dynamic Memory continued: Memory Leaks

1 Dynamic Memory continued: Memory Leaks CS104: Data Structures and Object-Oriented Design (Fall 2013) September 3, 2013: Dynamic Memory, continued; A Refresher on Recursion Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we continue

More information

CS 62 Midterm 2 Practice

CS 62 Midterm 2 Practice CS 62 Midterm 2 Practice 2017-4-7 Please put your name on the back of the last page of the test. Problem 1: Multiple Choice [8 points] [2 points each] For each question, circle the correct answer. If you

More information

UNIT-2. Problem of size n. Sub-problem 1 size n/2. Sub-problem 2 size n/2. Solution to the original problem

UNIT-2. Problem of size n. Sub-problem 1 size n/2. Sub-problem 2 size n/2. Solution to the original problem Divide-and-conquer method: Divide-and-conquer is probably the best known general algorithm design technique. The principle behind the Divide-and-conquer algorithm design technique is that it is easier

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 10 Recursion and Search MOUNA KACEM Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to solve a problem A recursive algorithm

More information

Sorted list. Find 104. How many comparisons with sequential search? A. 1 B. 4 C. 11 D. 12 E. 16. Vote at m.socrative.com. Room number

Sorted list. Find 104. How many comparisons with sequential search? A. 1 B. 4 C. 11 D. 12 E. 16. Vote at m.socrative.com. Room number Sorted list 7 8 15 53 54 61 66 75 77 99 104 111 123 124 150 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Find 104. How many comparisons with sequential search? A. 1 B. 4 C. 11 D. 12 E. 16 Vote at m.socrative.com.

More information

Binary Search APRIL 25 TH, 2014

Binary Search APRIL 25 TH, 2014 Binary Search APRIL 25 TH, 2014 The Search Problem One of the most common computational problems (along with sorting) is searching. In its simplest form, the input to the search problem is a list L and

More information

Recursive Algorithms. We would like to write an algorithm that computes the factorial of a given non-negative integer number n.

Recursive Algorithms. We would like to write an algorithm that computes the factorial of a given non-negative integer number n. ITNP21 - Foundations of IT 1 Recursive Algorithms We would like to write an algorithm that computes the factorial of a given non-negative integer number n. The factorial of 0 is 1 The factorial of n is

More information

ITEC2620 Introduction to Data Structures

ITEC2620 Introduction to Data Structures 9//207 ITEC2620 Introduction to Data Structures Lecture b Recursion and Binary Tree Operations Divide and Conquer Break a problem into smaller subproblems that are easier to solve What happens when the

More information

CSCE 110 Notes on Recursive Algorithms (Part 12) Prof. Amr Goneid

CSCE 110 Notes on Recursive Algorithms (Part 12) Prof. Amr Goneid CSCE 110 Notes on Recursive Algorithms (Part 12) Prof. Amr Goneid 1. Definition: The expression Recursion is derived from Latin: Re- = back and currere = to run, or to happen again, especially at repeated

More information

Department of Computer Science Admission Test for PhD Program. Part I Time : 30 min Max Marks: 15

Department of Computer Science Admission Test for PhD Program. Part I Time : 30 min Max Marks: 15 Department of Computer Science Admission Test for PhD Program Part I Time : 30 min Max Marks: 15 Each Q carries 1 marks. ¼ mark will be deducted for every wrong answer. Part II of only those candidates

More information

! Search: find a given item in a list, return the. ! Sort: rearrange the items in a list into some. ! list could be: array, linked list, string, etc.

! Search: find a given item in a list, return the. ! Sort: rearrange the items in a list into some. ! list could be: array, linked list, string, etc. Searching & Sorting Week 11 Gaddis: 8, 19.6,19.8 (8th ed) Gaddis: 8, 20.6,20.8 (9th ed) CS 5301 Fall 2018 Jill Seaman!1 Definitions of Search and Sort! Search: find a given item in a list, return the position

More information

Kent State University

Kent State University CS 4/56101 Design and Analysis of Algorithms Kent State University Dept. of Math & Computer Science LECT-3 2 What did we learned in the last class? Flashback: Two versions of Game of Life.. LECT-03, S-3

More information

Data Structures and Algorithms for Engineers

Data Structures and Algorithms for Engineers 0-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University

More information

8/5/10 TODAY'S OUTLINE. Recursion COMP 10 EXPLORING COMPUTER SCIENCE. Revisit search and sorting using recursion. Recursion WHAT DOES THIS CODE DO?

8/5/10 TODAY'S OUTLINE. Recursion COMP 10 EXPLORING COMPUTER SCIENCE. Revisit search and sorting using recursion. Recursion WHAT DOES THIS CODE DO? 8/5/10 TODAY'S OUTLINE Recursion COMP 10 EXPLORING COMPUTER SCIENCE Revisit search and sorting using recursion Binary search Merge sort Lecture 8 Recursion WHAT DOES THIS CODE DO? A function is recursive

More information

TREES. Trees - Introduction

TREES. Trees - Introduction TREES Chapter 6 Trees - Introduction All previous data organizations we've studied are linear each element can have only one predecessor and successor Accessing all elements in a linear sequence is O(n)

More information

Section 1: True / False (2 points each, 30 pts total)

Section 1: True / False (2 points each, 30 pts total) Section 1: True / False (2 points each, 30 pts total) Circle the word TRUE or the word FALSE. If neither is circled, both are circled, or it impossible to tell which is circled, your answer will be considered

More information

Sorting Algorithms. + Analysis of the Sorting Algorithms

Sorting Algorithms. + Analysis of the Sorting Algorithms Sorting Algorithms + Analysis of the Sorting Algorithms Insertion Sort What if first k elements of array are already sorted? 4, 7, 12, 5, 19, 16 We can shift the tail of the sorted elements list down and

More information

Introduction to Algorithms: Brute-Force Algorithms

Introduction to Algorithms: Brute-Force Algorithms Introduction to Algorithms: Brute-Force Algorithms Introduction to Algorithms Brute Force Powering a Number Selection Sort Exhaustive Search 0/1 Knapsack Problem Assignment Problem CS 421 - Analysis of

More information

Module 10. Recursion. Adapted from Absolute Java, Rose Williams, Binghamton University

Module 10. Recursion. Adapted from Absolute Java, Rose Williams, Binghamton University Module 10 Recursion Adapted from Absolute Java, Rose Williams, Binghamton University Recursive void Methods A recursive method is a method that includes a call to itself Recursion is based on the general

More information

Problem. Input: An array A = (A[1],..., A[n]) with length n. Output: a permutation A of A, that is sorted: A [i] A [j] for all. 1 i j n.

Problem. Input: An array A = (A[1],..., A[n]) with length n. Output: a permutation A of A, that is sorted: A [i] A [j] for all. 1 i j n. Problem 5. Sorting Simple Sorting, Quicksort, Mergesort Input: An array A = (A[1],..., A[n]) with length n. Output: a permutation A of A, that is sorted: A [i] A [j] for all 1 i j n. 98 99 Selection Sort

More information

ECE 122. Engineering Problem Solving Using Java

ECE 122. Engineering Problem Solving Using Java ECE 122 Engineering Problem Solving Using Java Lecture 27 Linear and Binary Search Overview Problem: How can I efficiently locate data within a data structure Searching for data is a fundamental function

More information

Python review. 1 Python basics. References. CS 234 Naomi Nishimura

Python review. 1 Python basics. References. CS 234 Naomi Nishimura Python review CS 234 Naomi Nishimura The sections below indicate Python material, the degree to which it will be used in the course, and various resources you can use to review the material. You are not

More information

COMP 161 Lecture Notes 16 Analyzing Search and Sort

COMP 161 Lecture Notes 16 Analyzing Search and Sort COMP 161 Lecture Notes 16 Analyzing Search and Sort In these notes we analyze search and sort. Counting Operations When we analyze the complexity of procedures we re determine the order of the number of

More information

Sorting and Searching Algorithms

Sorting and Searching Algorithms Sorting and Searching Algorithms Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale tessema.mengistu@siu.edu Room - Faner 3131 1 Outline Introduction to Sorting

More information

Algorithms. MIS, KUAS, 2007 Ding

Algorithms. MIS, KUAS, 2007 Ding Algorithms MIS, KUAS, 2007 Jen-Wen Ding 1 2 2 What is Divide-and-Conquer? Divide-and-Conquer divides an instance of a problem into two or more smaller instances. The smaller instances are usually instances

More information

CS302 Topic: Algorithm Analysis #2. Thursday, Sept. 21, 2006

CS302 Topic: Algorithm Analysis #2. Thursday, Sept. 21, 2006 CS302 Topic: Algorithm Analysis #2 Thursday, Sept. 21, 2006 Analysis of Algorithms The theoretical study of computer program performance and resource usage What s also important (besides performance/resource

More information

CS134 Spring 2005 Final Exam Mon. June. 20, 2005 Signature: Question # Out Of Marks Marker Total

CS134 Spring 2005 Final Exam Mon. June. 20, 2005 Signature: Question # Out Of Marks Marker Total CS134 Spring 2005 Final Exam Mon. June. 20, 2005 Please check your tutorial (TUT) section from the list below: TUT 101: F 11:30, MC 4042 TUT 102: M 10:30, MC 4042 TUT 103: M 11:30, MC 4058 TUT 104: F 10:30,

More information

Point Enclosure and the Interval Tree

Point Enclosure and the Interval Tree C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 8 Date: March 3, 1993 Scribe: Dzung T. Hoang Point Enclosure and the Interval Tree Point Enclosure We consider the 1-D

More information

Lecture 15: Algorithms. AP Computer Science Principles

Lecture 15: Algorithms. AP Computer Science Principles Lecture 15: Algorithms AP Computer Science Principles Algorithm algorithm: precise sequence of instructions to solve a computational problem. Search for a name in a phone s contact list. Sort emails by

More information

CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics

CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics 1 Sorting 1.1 Problem Statement You are given a sequence of n numbers < a 1, a 2,..., a n >. You need to

More information

1KOd17RMoURxjn2 CSE 20 DISCRETE MATH Fall

1KOd17RMoURxjn2 CSE 20 DISCRETE MATH Fall CSE 20 https://goo.gl/forms/1o 1KOd17RMoURxjn2 DISCRETE MATH Fall 2017 http://cseweb.ucsd.edu/classes/fa17/cse20-ab/ Today's learning goals Explain the steps in a proof by mathematical and/or structural

More information

You should know the first sum above. The rest will be given if you ever need them. However, you should remember that,, and.

You should know the first sum above. The rest will be given if you ever need them. However, you should remember that,, and. Big-Oh Notation Formal Definitions A function is in (upper bound) iff there exist positive constants k and n 0 such that for all. A function is in (lower bound) iff there exist positive constants k and

More information

Multiple-choice (35 pt.)

Multiple-choice (35 pt.) CS 161 Practice Midterm I Summer 2018 Released: 7/21/18 Multiple-choice (35 pt.) 1. (2 pt.) Which of the following asymptotic bounds describe the function f(n) = n 3? The bounds do not necessarily need

More information

ECE264 Fall 2013 Exam 1, September 24, 2013

ECE264 Fall 2013 Exam 1, September 24, 2013 ECE264 Fall 2013 Exam 1, September 24, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

16. Searching and Sorting

16. Searching and Sorting 16. Searching and Sorting Java Fall 2009 Instructor: Dr. Masoud Yaghini Searching and Sorting Outline Searching Arrays Sorting Arrays Arrays Class References Searching Arrays Searching Arrays Searching

More information

CSC 1052 Algorithms & Data Structures II: Recursion

CSC 1052 Algorithms & Data Structures II: Recursion CSC 1052 Algorithms & Data Structures II: Recursion Professor Henry Carter Spring 2018 Recap Stacks provide a LIFO ordered data structure Implementation tradeoffs between arrays and linked lists typically

More information

DWMJL. i Mrs. Rouse carried a small in- Board of T r a d e to adopt or s p o n - of Hastings.

DWMJL. i Mrs. Rouse carried a small in- Board of T r a d e to adopt or s p o n - of Hastings. XXX Y Y 9 3 Q - % Y < < < - Q 6 3 3 3 Y Y 7 - - - - - - Y 93 ; - ; z ; x - 77 ; q ; - 76 3; - x - 37 - - x - - - - - q - - - x - - - q - - ) - - Y - ; ] x x x - z q - % Z Z # - - 93 - - x / } z x - - {

More information

CS171 Final Practice Exam

CS171 Final Practice Exam CS171 Final Practice Exam Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 150 minutes to complete this exam. Read each problem carefully, and review your

More information

Introduction to the Analysis of Algorithms. Algorithm

Introduction to the Analysis of Algorithms. Algorithm Introduction to the Analysis of Algorithms Based on the notes from David Fernandez-Baca Bryn Mawr College CS206 Intro to Data Structures Algorithm An algorithm is a strategy (well-defined computational

More information

= otherwise W-4 W-1. Overview. CSE 142 Computer Programming I. Overview. Factorial Function

= otherwise W-4 W-1. Overview. CSE 142 Computer Programming I. Overview. Factorial Function CSE 14 Computer Programming I Recursion Overview Review Function calls in C Concepts Recursive definitions and functions Base and recursive cases Reading Read textbook sec. 10.1-10.3 & 10.7 Optional: sec.

More information

1 Complexity (10 minutes)

1 Complexity (10 minutes) Data Structures Fall 2016, Prof. Bolton Exam 1 Name: Net ID: This exam contains 8 pages (including this cover page) and 9 questions. Total of points is 100. Conditions: You are permitted writing utensils

More information

COT 3100 Spring 2010 Midterm 2

COT 3100 Spring 2010 Midterm 2 COT 3100 Spring 2010 Midterm 2 For the first two questions #1 and #2, do ONLY ONE of them. If you do both, only question #1 will be graded. 1. (20 pts) Give iterative and recursive algorithms for finding

More information

Recursion. Chapter 11. Chapter 11 1

Recursion. Chapter 11. Chapter 11 1 Recursion Chapter 11 Chapter 11 1 Reminders Project 6 is over. Project 7 has begun Start on time! Not much code for milestone, but a great deal of thought Chapter 11 2 Exam 2 Problem Problems Problem 2)

More information

Objective 1.02 Understand Numbering Systems

Objective 1.02 Understand Numbering Systems Objective.0 Understand Numbering Systems C O M P U T E R P R O G R A M M I N G I Number Systems Number systems we will talk about: Decimal (Base 0 ) Binary (Base ) Hexadecimal (Base 6 ) Decimal The number

More information

CS 261: Data Structures. Sorted Dynamic Array Bag and Set

CS 261: Data Structures. Sorted Dynamic Array Bag and Set CS 261: Data Structures Sorted Dynamic Array Bag and Set 1 Ordered Collections How do we organize data in dictionaries or phonebooks? Find in a phonebook: the phone number of John Smith the person with

More information

Unit 10: Sorting/Searching/Recursion

Unit 10: Sorting/Searching/Recursion Unit 10: Sorting/Searching/Recursion Notes AP CS A Searching. Here are two typical algorithms for searching a collection of items (which for us means an array or a list). A Linear Search starts at the

More information

Algorithm Analysis. Spring Semester 2007 Programming and Data Structure 1

Algorithm Analysis. Spring Semester 2007 Programming and Data Structure 1 Algorithm Analysis Spring Semester 2007 Programming and Data Structure 1 What is an algorithm? A clearly specifiable set of instructions to solve a problem Given a problem decide that the algorithm is

More information

BST Deletion. First, we need to find the value which is easy because we can just use the method we developed for BST_Search.

BST Deletion. First, we need to find the value which is easy because we can just use the method we developed for BST_Search. BST Deletion Deleting a value from a Binary Search Tree is a bit more complicated than inserting a value, but we will deal with the steps one at a time. First, we need to find the value which is easy because

More information

Recursion: The Mirrors. (Walls & Mirrors - Chapter 2)

Recursion: The Mirrors. (Walls & Mirrors - Chapter 2) Recursion: The Mirrors (Walls & Mirrors - Chapter 2) 1 To iterate is human, to recurse, divine. - L. Peter Deutsch It seems very pretty but it s rather hard to understand! - Lewis Carroll 2 A recursive

More information

CS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid:

CS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid: CS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid: CS 2150 Final Exam Name You MUST write your e-mail ID on EACH page and put your name on the top of this page, too. If you are still writing when

More information

cs Java: lecture #6

cs Java: lecture #6 cs3101-003 Java: lecture #6 news: homework #5 due today little quiz today it s the last class! please return any textbooks you borrowed from me today s topics: interfaces recursion data structures threads

More information

Wednesday January 31, 2:30-4pm ENGMC 103

Wednesday January 31, 2:30-4pm ENGMC 103 Academic Forum Wednesday January 31, 2:30-4pm ENGMC 103 The academic forum is an opportunity for students to provide feedback to the department on all aspects of the undergraduate academic experience,

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 03 / 05 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? binary search trees Finish delete method Discuss run times of various methods Michael

More information

Chapter Objectives. List Processing. Chapter 10: Applications of Arrays and Strings. Java Programming: Program Design Including Data Structures

Chapter Objectives. List Processing. Chapter 10: Applications of Arrays and Strings. Java Programming: Program Design Including Data Structures Chapter 10: Applications of Arrays and Strings Java Programming: Program Design Including Data Structures Chapter Objectives Learn how to implement the sequential search algorithm Explore how to sort an

More information

11/2/2017 RECURSION. Chapter 5. Recursive Thinking. Section 5.1

11/2/2017 RECURSION. Chapter 5. Recursive Thinking. Section 5.1 RECURSION Chapter 5 Recursive Thinking Section 5.1 1 Recursive Thinking Recursion is a problem-solving approach that can be used to generate simple solutions to certain kinds of problems that are difficult

More information

Divide and Conquer. playing divide and conquer. searching in a sorted list membership in a sorted list

Divide and Conquer. playing divide and conquer. searching in a sorted list membership in a sorted list Divide and Conquer 1 Guessing a Secret playing divide and conquer 2 Binary Search searching in a sorted list membership in a sorted list 3 Bisection Search inverting a sampled function bisection search

More information

Sorting and Searching. Sudeshna Sarkar 7 th Feb 2017

Sorting and Searching. Sudeshna Sarkar 7 th Feb 2017 Sorting and Searching Sudeshna Sarkar 7 th Feb 2017 Searching an Array: Linear and Binary Search Spring 2012 Programming and Data Structure 2 Searching Check if a given element (key) occurs in the array.

More information

10/11/2013. Chapter 3. Objectives. Objectives (continued) Introduction. Attributes of Algorithms. Introduction. The Efficiency of Algorithms

10/11/2013. Chapter 3. Objectives. Objectives (continued) Introduction. Attributes of Algorithms. Introduction. The Efficiency of Algorithms Chapter 3 The Efficiency of Algorithms Objectives INVITATION TO Computer Science 1 After studying this chapter, students will be able to: Describe algorithm attributes and why they are important Explain

More information

CS 137 Part 8. Merge Sort, Quick Sort, Binary Search. November 20th, 2017

CS 137 Part 8. Merge Sort, Quick Sort, Binary Search. November 20th, 2017 CS 137 Part 8 Merge Sort, Quick Sort, Binary Search November 20th, 2017 This Week We re going to see two more complicated sorting algorithms that will be our first introduction to O(n log n) sorting algorithms.

More information

8 Algorithms 8.1. Foundations of Computer Science Cengage Learning

8 Algorithms 8.1. Foundations of Computer Science Cengage Learning 8 Algorithms 8.1 Foundations of Computer Science Cengage Learning 8.2 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define

More information

THE B+ TREE INDEX. CS 564- Spring ACKs: Jignesh Patel, AnHai Doan

THE B+ TREE INDEX. CS 564- Spring ACKs: Jignesh Patel, AnHai Doan THE B+ TREE INDEX CS 564- Spring 2018 ACKs: Jignesh Patel, AnHai Doan WHAT IS THIS LECTURE ABOUT? The B+ tree index Basics Search/Insertion/Deletion Design & Cost 2 INDEX RECAP We have the following query:

More information

Faster Sorting Methods

Faster Sorting Methods Faster Sorting Methods Chapter 9 Contents Merge Sort Merging Arrays Recursive Merge Sort The Efficiency of Merge Sort Iterative Merge Sort Merge Sort in the Java Class Library Contents Quick Sort The Efficiency

More information

Topic 14 Searching and Simple Sorts

Topic 14 Searching and Simple Sorts Topic 14 Searching and Simple Sorts "There's nothing in your head the sorting hat can't see. So try me on and I will tell you where you ought to be." -The Sorting Hat, Harry Potter and the Sorcerer's Stone

More information

Unit 10: Data Structures CS 101, Fall 2018

Unit 10: Data Structures CS 101, Fall 2018 Unit 10: Data Structures CS 101, Fall 2018 Learning Objectives After completing this unit, you should be able to: Define and give everyday examples of arrays, stacks, queues, and trees. Explain what a

More information

Computer Science. Section 1B

Computer Science. Section 1B Computer Science Foundation Exam August 8, 2008 Computer Science Section 1B KEY Name: SSN: Max Pts Passing Pts Category Q1 10 6 KNW Q2 8 4 CMP Q3 12 8 ANL Q4 8 6 DSN Q5 12 8 DSN Total 50 32 Score You have

More information

CS 170 DISCUSSION 8 DYNAMIC PROGRAMMING. Raymond Chan raychan3.github.io/cs170/fa17.html UC Berkeley Fall 17

CS 170 DISCUSSION 8 DYNAMIC PROGRAMMING. Raymond Chan raychan3.github.io/cs170/fa17.html UC Berkeley Fall 17 CS 170 DISCUSSION 8 DYNAMIC PROGRAMMING Raymond Chan raychan3.github.io/cs170/fa17.html UC Berkeley Fall 17 DYNAMIC PROGRAMMING Recursive problems uses the subproblem(s) solve the current one. Dynamic

More information

(Refer Slide Time: 00:02:00)

(Refer Slide Time: 00:02:00) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

More information

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May www.jwjobs.net R10 SET - 1 II B. Tech I Semester, Supplementary Examinations, May - 2012 (Com. to CSE, IT, ECC ) Time: 3 hours Max Marks: 75 *******-****** 1. a) Which of the given options provides the

More information

Unit-2 Divide and conquer 2016

Unit-2 Divide and conquer 2016 2 Divide and conquer Overview, Structure of divide-and-conquer algorithms, binary search, quick sort, Strassen multiplication. 13% 05 Divide-and- conquer The Divide and Conquer Paradigm, is a method of

More information

CSE373 Fall 2013, Midterm Examination October 18, 2013

CSE373 Fall 2013, Midterm Examination October 18, 2013 CSE373 Fall 2013, Midterm Examination October 18, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please stop

More information

Sample Questions for Midterm Exam 2

Sample Questions for Midterm Exam 2 Sample Questions for Midterm Exam 2 The following are meant to give you some examples of questions that might be asked on the second midterm exam. The sample exam questions do not represent the length

More information

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May

R10 SET - 1. Code No: R II B. Tech I Semester, Supplementary Examinations, May Code No: R21051 R10 SET - 1 II B. Tech I Semester, Supplementary Examinations, May - 2012 DATA STRUCTURES (Com. to CSE, IT, ECC ) Time: 3 hours Max Marks: 75 Answer any FIVE Questions All Questions carry

More information

CSCI 121: Searching & Sorting Data

CSCI 121: Searching & Sorting Data CSCI 121: Searching & Sorting Data Searching a list Let s consider the work involved in Python s execution of it might rely on code like this: y in xs def search(y,xs): i, n = 0, len(xs) while i < n: if

More information

! Search: find a given item in a list, return the. ! Sort: rearrange the items in a list into some. ! list could be: array, linked list, string, etc.

! Search: find a given item in a list, return the. ! Sort: rearrange the items in a list into some. ! list could be: array, linked list, string, etc. Searching & Sorting Week 11 Gaddis: 8, 19.6,19.8 CS 5301 Fall 2014 Jill Seaman 1 Definitions of Search and Sort! Search: find a given item in a list, return the position of the item, or -1 if not found.!

More information

CS211 Spring 2005 Prelim 2 April 19, Instructions

CS211 Spring 2005 Prelim 2 April 19, Instructions CS211 Spring 2005 Prelim 2 April 19, 2005 Name NetId Instructions Write your name and Cornell netid above. There are 8 questions on 11 numbered pages. Check now that you have all the pages. Write your

More information

Bin Sort. Sorting integers in Range [1,...,n] Add all elements to table and then

Bin Sort. Sorting integers in Range [1,...,n] Add all elements to table and then Sorting1 Bin Sort Sorting integers in Range [1,...,n] Add all elements to table and then Retrieve in order 1, 2, 3,...,n Stable Sorting Method (repeated elements will end up in their original order) Numbers

More information

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM

More information

Discussion 2C Notes (Week 8, February 25) TA: Brian Choi Section Webpage:

Discussion 2C Notes (Week 8, February 25) TA: Brian Choi Section Webpage: Discussion 2C Notes (Week 8, February 25) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Trees Definitions Yet another data structure -- trees. Just like a linked

More information

Basic Properties The Definition of Catalan Numbers

Basic Properties The Definition of Catalan Numbers 1 Basic Properties 1.1. The Definition of Catalan Numbers There are many equivalent ways to define Catalan numbers. In fact, the main focus of this monograph is the myriad combinatorial interpretations

More information

Fun facts about recursion

Fun facts about recursion Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop

More information

B-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements

B-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements B-Trees 1 B-Trees nodes with many children a type node a class for B-trees 2 manipulating a B-tree an elaborate example the insertion algorithm removing elements MCS 360 Lecture 35 Introduction to Data

More information

4. SEARCHING AND SORTING LINEAR SEARCH

4. SEARCHING AND SORTING LINEAR SEARCH 4. SEARCHING AND SORTING SEARCHING Searching and sorting are fundamental operations in computer science. Searching refers to the operation of finding the location of a given item in a collection of items.

More information

Recursion continued. Programming using server Covers material done in Recitation. Part 2 Friday 8am to 4pm in CS110 lab

Recursion continued. Programming using server Covers material done in Recitation. Part 2 Friday 8am to 4pm in CS110 lab Recursion continued Midterm Exam 2 parts Part 1 done in recitation Programming using server Covers material done in Recitation Part 2 Friday 8am to 4pm in CS110 lab Question/Answer Similar format to Inheritance

More information