Sorting and Searching. Lecture 14
|
|
- Maude Lloyd
- 6 years ago
- Views:
Transcription
1 Sorting and Searching Lecture 14
2 Announcements WS4 - Due Today PS3 - Due next Tuesday. This one increases in difficulty as you move through it. Start now!
3 Warm-up #1: What are the elements of array numbers in the main function that are printed? function main(): void { let numbers: number[] = [3, 9, 4, 2, 1]; movebackward(numbers, 2); print(numbers); } function movebackward(a: number[], i: number): void { let temp: number = a[i]; a[i] = a[i - 1]; a[i - 1] = temp; }
4 Warm-up #2: What is printed when this code runs? function main(): void { let numbers: number[] = [101, 110, 401, 110, 110, 110]; print(find(numbers, 110)); } function find(haystack: number[], needle: number): boolean { for (let i: number = 0; i < haystack.length; i++) { if (haystack[i] === needle) { return true; } } return false; } main();
5 World's 2 nd Worst Magic Trick
6 Follow-along: Sort by Low Temperature Open 00-comparator-sort-app.ts Notice we are importing: Classes: WeatherRow Functions: bytemplow, bytemphigh, and printrows Take a look at the bytemplow comparator function implementation Let's sort the data using bytemplow
7 print("sorted bytemplow"); // TODO: Sort Data using bytemplow comparator let comparator: Comparator<WeatherRow> = bytemplow; data.sort(comparator); printrows(data, 3);
8 The Comparator<T> Functional Interface A functional interface for comparing two objects of type T for sorting and searching Its signature is: (a: T, b: T): number; i.e. an implementation of Comparator<WeatherRow>: function bytemplow(a: WeatherRow, b: WeatherRow): number { // TODO: Compare a and b } Returns: A negative number when a comes before b A positive number when a comes after b Zero when a is same order as b and order doesn't matter
9 Use Constants to avoid "Magic Numbers" A magic number is a nameless, literal value in code like comparator's -1 or 1 Hard to remember what they mean! "What does this -1 mean here again?" Causes larger projects to become more difficult to maintain. Best practice: Define constants to give meaning to magic numbers. A constant is just a variable whose value cannot be reassigned Here's how you declare a constant in TypeScript: const <NAME>: <type> = <value>; It is conventional to name constants in ALL_UPPERCASE_LETTERS and separate words with _'s const A_BEFORE_B: number = -1;
10 Array's sort method Every array of type T[] has a method named sort Here's its signature: T[] sort(comparator<t> comparator) If we call sort on an array object, and tell it how to compare any two elements using a Comparator function, the array will be sorted for us! Disclaimer: sort modifies the original array and returns a reference to the original array. It does not create and return a new array like filter and map.
11 Sorting Order Notice that bylowtemp is sorting in ascending order Lowest to Highest A-Z How could we implement byhightemp to sort in descending order? Highest to Lowest Z-A What's the difference? A Comparator's logic decides whether sorting is ascending/descending
12 Hands-on: Sort by High Temperature Descending 1. Open comparators.ts and find the byhightemp function 2. Fix its logic such that: 1. When a's temphigh is larger than b's, the function will return A_BEFORE_B (descending!) 2. When a's temphigh is smaller than b's, return A_AFTER_B 3. Otherwise, return A_SAME_AS_B 3. From 00-comparator-sort-app.ts, at TODO #2, sort the data using the byhightemp comparator function 4. Check-in when you see the 3 hottest days in the data set printing in descending order
13 export function bytemphigh(a: WeatherRow, b: WeatherRow): number { if (a.temphigh > b.temphigh) { return A_BEFORE_B; } else if (a.temphigh < b.temphigh) { return A_AFTER_B; } else { return A_SAME_AS_B; } } print("sorted bytemphigh"); // TODO #2 Sort Data using bytemphigh comparator data.sort(bytemphigh); printrows(data, 3);
14 Switching gears: Searching
15 Linear Search Start from one end of an array "haystack". Visit each element one-by-one until you find your "needle". Made past the end? No match!
16 The Linear Search Algorithm Be El Folt I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes i Does the word Yes exist in this array of Strings?
17 Follow-Along: Let's Implement Linear Search Open 01-linear-search-app.ts We'll be working with the CSV file words.csv which has 77,000 words in it We'll implement the linearsearch function together
18 function linearsearch(haystack: string[], needle: string, compare: Comparator<string>): boolean { } for (let i: number = 0; i < haystack.length; i++) { } let comparison: number = compare(needle, haystack[i]); comparisons++; // Count this as a comparison if (comparison === A_SAME_AS_B) { return true; } return false;
19 How many steps does it take to find a word using a Linear Search algorithm? If we ran this with enough words selected at random, you would expect it takes on average: _words.length / 2 or N / 2 Why? Some words will be found in few steps the first half of the list, and others will be found in many steps in the second half of the list. When evaluating runtime characteristics of an algorithm, computer scientists tend to waive their hands and approximate. We classify linear search as an O(N) algorithm using big oh notation. Given a search space of N items, this algorithm will complete in about N steps.
20 Can we do better? Is this how you would find a word in a dictionary that starts with another word? Start with aardvark and scan your finger through each word until matching. What is it about a dictionary helps us do better? Dictionaries are sorted!
21 Aside: Number Guessing Game Think of a number between 1 and 64 Have your friend guess it Say "higher" or "lower" in response Count the # of guesses it takes! See who takes fewer guesses Check-in on PollEv.com/comp110
22 Introducing: Binary Search Requirement: Elements must be SORTED! Why are sorting algos important? So we can search efficiently! Algo: Start in the middle, compare with what we re looking for: Too big? Look only at the smaller half. Too small? Look only at the larger half. Step Numbers Left Intuition: at every step we cut the search space in half...
23 The Binary Search Algorithm Be El Folt I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Does the word Folt exist in this array of Strings?
24 Low High The Binary Search Algorithm Be El I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 15 middle?
25 Low Middle High The Binary Search Algorithm Be El I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 15 middle 7
26 Low Middle High The Binary Search Algorithm Lower Be El I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 15 middle 7
27 Low Middle High The Binary Search Algorithm Be El I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 6 middle?
28 Low High Middle The Binary Search Algorithm Be El I Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 6 middle 3
29 Low Middle High The Binary Search Algorithm Higher Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 0 high 6 middle 3
30 Low Middle High The Binary Search Algorithm Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 6 middle 3
31 Middle Low High The Binary Search Algorithm Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 6 middle 5
32 Low Middle High The Binary Search Algorithm Lower Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 6 middle 5
33 Low Middle High The Binary Search Algorithm Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 4 middle?
34 Low High Middle The Binary Search Algorithm Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 4 middle 4
35 Middle Low High The Binary Search Algorithm Be El Dog Jog Kid Loo Mom Pop The Ug Um Us Vim Win Yes Looking for: Folt low 4 high 4 middle 4
36 How do we calculate the next middle? Low High Middle middle = Math.floor((low + high) / 2) Calling the Math.floor method will cause any decimal value to always be rounded down. This winds up being useful because arrays are 0-indexed. Imagine the case of the 2-element array. Low would be 0, high would be 1, and so the first middle would be: Math.floor(1 / 2). We choose to try 0 first.
37 Follow-along: Let's Implement Binary Search Open 03-binary-search-app.ts Let's implement the missing logic in the binarysearch function together!
38 function binarysearch(haystack: string[], needle: string, compare: Comparator<string>): boolean { let low: number = 0; let high: number = haystack.length - 1; while (low <= high) { let middle: number = Math.floor((low + high) / 2); let comparison: number = compare(needle, haystack[middle]); comparisons++; // Count this call to comparator } // TODO: Implement Correct Logic if (comparison <= A_BEFORE_B) { // We need to guess lower! high = middle - 1; } else if (comparison >= A_AFTER_B) { // We need to guess higher! low = middle + 1; } else { return true; } } // Needle was not found! return false;
39 How many steps does it take to find a word using the Binary Search algorithm? If we ran this with enough words selected at random, you would expect it takes ~ log 2 (words.length) We classify binary search as an O(log 2 (N)) Given a search space of N, this algorithm will complete in log 2 (N) steps. The best algorithms in computer science tend to have logarithmic solutions. Step Words Left 0 77, , , , , , ,
40 If we had an array with every one of the 7 billion humans on Earth's names arranged in order, how many steps would it take to find one using binary search? 33 steps at most. 2^32 is 4.2 billion 2^33 is 8.5 billion
41 So how does a sorting algorithm work?
42 Sorting Algorithms Array Sort Algorithm Sorted List One of Computer Science's oldest bodies of work! Insertion Sort Heap Sort There are many sorting algorithms each with pros/cons. Use a language's built-in sort functionality! You should very rarely, if ever, implement your own sorting algorithm in a real-world project Sorting is a solved problem and these algos take time to debug
43 "Magic Trick" - Reveal By looking at only 2 cards at a time, I was able to sort a List of cards How?!? A Sorting Algorithm Programming languages have built-in sorting algorithms......all you typically need to sort data is provide a Comparator. We looked at a few example implementations of the Comparator interface Let's try implementing a simple sort algorithm!
44 Insertion Sort Algorithm Overview 1. Start from the front of an array 2. "Hat" is the next element. No next element? Go to step Move hat backwards to the correctly sorted position in the array. 4. Tada!
45 Insertion Sort Algorithm Overview 1. Start from the front of an array 2. "Hat" is the next element. No next element? Go to step Relative to the element before it, should "hat" move backwards? 1. Yes? Move it backward one position! Repeat step No? It's in its correctly sorted position! Go to step Tada! A fully sorted array!
46 How do we know an element should move backward? Base case: it is already the first element of the array, at index 0. Cannot move backward. Otherwise: we compare it to the previous element using a Comparator comparator(a[hat], a[hat-1]) <= A_BEFORE_B Reminder: A_BEFORE_B is the constant -1 When a negative number is returned after comparing the current element a[hat] as the first parameter to the previous element a[hat-1] as the second parameter, it means the current element should move backward to be ordered correctly.
47 Follow-along: Implement Insertion Sort function sort(a: number[], compare: Comparator<number>): number[] { for (let i: number = 0; i < a.length; i++) { let hat: number = i; // TODO: Implement the logic to move a card backward while (hat > 0 && compare(a[hat], a[hat - 1]) <= A_BEFORE_B) { movebackward(a, hat); hat--; } } return a; }
48 Insertion Sort vs. Array's built-in sort method Both algorithms achieve the same goal of sorting an array. However, the language's sort algorithm is much faster than insertion sort. Reminder: Use your programming language's built-in sorting algorithms!
Sorting, Searching and Array's Built-in Methods. Lecture 16 COMP110 Spring 2018
Sorting, Searching and Array's Built-in Methods Lecture 16 COMP110 Spring 2018 Warm-up 1: What are the elements of a? let a: number[] = [ 2 ]; // Notice initial element 2 let i: number = 0; while (i
More informationSearch 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 informationFixing the "Black Screen of Death"
Arrays Lecture 6 Fixing the "Black Screen of Death" When you see a screen that looks like the black screen to the right: The error may be in a file other than the one you are working on. The file with
More informationECE 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 informationCSCI 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 informationTopics. Sorting. Sorting. 1) How can we sort data in an array? a) Selection Sort b) Insertion Sort
Topics 1) How can we sort data in an array? a) Selection Sort b) Insertion Sort 2) How can we search for an element in an array? a) Linear Search b) Binary Search Slides #15 Sections 9.1-9.5 Sorting and
More informationTopics Applications Most Common Methods Serial Search Binary Search Search by Hashing (next lecture) Run-Time Analysis Average-time analysis Time anal
CSC212 Data Structure t Lecture 18 Searching Instructor: George Wolberg Department of Computer Science City College of New York @ George Wolberg, 2016 1 Topics Applications Most Common Methods Serial Search
More informationCS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and
CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 10: Asymptotic Complexity and What Makes a Good Algorithm? Suppose you have two possible algorithms or
More informationSorting Pearson Education, Inc. All rights reserved.
1 19 Sorting 2 19.1 Introduction (Cont.) Sorting data Place data in order Typically ascending or descending Based on one or more sort keys Algorithms Insertion sort Selection sort Merge sort More efficient,
More informationboolean & if-then-else
boolean & if-then-else Lecture 03 Step 1: Open VSCode and its Integrated Terminal Step 2: npm run pull Step 3: npm run start Step 4: Open another tab to pollev.com/comp110 Assignments Out Problem Set 0
More informationCSc 110, Spring 2017 Lecture 39: searching
CSc 110, Spring 2017 Lecture 39: searching 1 Sequential search sequential search: Locates a target value in a list (may not be sorted) by examining each element from start to finish. Also known as linear
More informationWhat did we talk about last time? Finished hunters and prey Class variables Constants Class constants Started Big Oh notation
Week 12 - Friday What did we talk about last time? Finished hunters and prey Class variables Constants Class constants Started Big Oh notation Here is some code that sorts an array in ascending order
More informationCOMP-202: Foundations of Programming
COMP-202: Foundations of Programming Lecture 3: Basic data types Jackie Cheung, Winter 2016 Review: Hello World public class HelloWorld { } public static void main(string[] args) { } System.out.println("Hello,
More informationBinary Search and Worst-Case Analysis
Yufei Tao ITEE University of Queensland A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems. Every time we discuss a problem in this
More informationBinary Search and Worst-Case Analysis
Department of Computer Science and Engineering Chinese University of Hong Kong A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems.
More informationLecture. Algorithm Design and Recursion. Richard E Sarkis CSC 161: The Art of Programming
Lecture Algorithm Design and Recursion Richard E Sarkis CSC 161: The Art of Programming Class Administrivia Objectives To understand the basic techniques for analyzing the efficiency of algorithms To know
More informationArrays and while Loops. Lecture 15 - COMP110 - Spring 2018
Arrays and while Loops Lecture 15 - COMP110 - Spring 2018 Announcements PS04 - March Sadness - Due Sunday 3/25 at 11:59pm Review Session - Tomorrow at 5pm in SN014 Tutoring Friday from 12pm - 4pm in SN115
More informationCS 231 Data Structures and Algorithms Fall Algorithm Analysis Lecture 16 October 10, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Algorithm Analysis Lecture 16 October 10, 2018 Prof. Zadia Codabux 1 Agenda Algorithm Analysis 2 Administrative No quiz this week 3 Algorithm Analysis 4
More informationUNIT 5B Binary Search
205/09/30 UNIT 5B Binary Search Course Announcements Written exam next week (Wed. Oct 7 ) Practice exam available on the Resources page Exam reviews: Sunday afternoon; watch Piazza for times and places
More information8/2/10. Looking for something COMP 10 EXPLORING COMPUTER SCIENCE. Where is the book Modern Interiors? Lecture 7 Searching and Sorting TODAY'S OUTLINE
Looking for something COMP 10 EXPLORING COMPUTER SCIENCE Where is the book Modern Interiors? Lecture 7 Searching and Sorting TODAY'S OUTLINE Searching algorithms Linear search Complexity Sorting algorithms
More informationHeap sort. Carlos Moreno uwaterloo.ca EIT
Carlos Moreno cmoreno @ uwaterloo.ca EIT-4103 http://xkcd.com/835/ https://ece.uwaterloo.ca/~cmoreno/ece250 Standard reminder to set phones to silent/vibrate mode, please! Last time, on ECE-250... Talked
More informationAlgorithm efficiency can be measured in terms of: Time Space Other resources such as processors, network packets, etc.
Algorithms Analysis Algorithm efficiency can be measured in terms of: Time Space Other resources such as processors, network packets, etc. Algorithms analysis tends to focus on time: Techniques for measuring
More informationCSCI 261 Computer Science II
CSCI 261 Computer Science II Department of Mathematics and Computer Science Lecture 3 Complexity Analysis and the Big-O Notation My Mom 2 My Mom Is a Human Yardstick All my mom ever does is compare things
More informationCS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 06 / 11 / 2015 Instructor: Michael Eckmann Today s Topics Comments and/or Questions? Sorting Searching Michael Eckmann - Skidmore College - CS 106 - Summer 2015
More informationJava How to Program, 9/e. Copyright by Pearson Education, Inc. All Rights Reserved.
Java How to Program, 9/e Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved. Searching data involves determining whether a value (referred to as the search key) is present in the data
More informationSearching and Sorting
Searching and Sorting Sequential search sequential search: Locates a target value in an array/list by examining each element from start to finish. How many elements will it need to examine? Example: Searching
More informationDefinition: A data structure is a way of organizing data in a computer so that it can be used efficiently.
The Science of Computing I Lesson 4: Introduction to Data Structures Living with Cyber Pillar: Data Structures The need for data structures The algorithms we design to solve problems rarely do so without
More informationALGORITHM ANALYSIS. cs2420 Introduction to Algorithms and Data Structures Spring 2015
ALGORITHM ANALYSIS cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 2 is due Friday at midnight -note change in due date, and time -tutoring experiment http://doodle.com/89cbb4u5n5acy9ag
More informationData Structures Lecture 3 Order Notation and Recursion
Data Structures Lecture 3 Order Notation and Recursion 1 Overview The median grade.cpp program from Lecture 2 and background on constructing and using vectors. Algorithm analysis; order notation Recursion
More informationFUNctions. Lecture 03 Spring 2018
FUNctions Lecture 03 Spring 2018 Announcements PS0 Due Tomorrow at 11:59pm WS1 Released soon, due next Friday 2/2 at 11:59pm Not quite understand a topic in lecture this week? Come to Tutoring Tomorrow
More informationSum this up for me. Let s write a method to calculate the sum from 1 to some n. Gauss also has a way of solving this. Which one is more efficient?
Sum this up for me Let s write a method to calculate the sum from 1 to some n public static int sum1(int n) { int sum = 0; for (int i = 1; i
More informationOutline: Search and Recursion (Ch13)
Search and Recursion Michael Mandel Lecture 12 Methods in Computational Linguistics I The City University of New York, Graduate Center https://github.com/ling78100/lectureexamples/blob/master/lecture12final.ipynb
More informationCSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting. Ruth Anderson Winter 2019
CSE 332: Data Structures & Parallelism Lecture 12: Comparison Sorting Ruth Anderson Winter 2019 Today Sorting Comparison sorting 2/08/2019 2 Introduction to sorting Stacks, queues, priority queues, and
More informationCh 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 informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationSearching for Information. A Simple Method for Searching. Simple Searching. Class #21: Searching/Sorting I
Class #21: Searching/Sorting I Software Design II (CS 220): M. Allen, 26 Feb. 18 Searching for Information Many applications involve finding pieces of information Finding a book in a library or store catalogue
More informationO(n): printing a list of n items to the screen, looking at each item once.
UNIT IV Sorting: O notation efficiency of sorting bubble sort quick sort selection sort heap sort insertion sort shell sort merge sort radix sort. O NOTATION BIG OH (O) NOTATION Big oh : the function f(n)=o(g(n))
More information5/31/2006. Last Time. Announcements. Today. Variable Scope. Variable Lifetime. Variable Scope - Cont. The File class. Assn 3 due this evening.
Last Time Announcements The File class. Back to methods Passing parameters by value and by reference. Review class attributes. An exercise to review File I/O, look at passing by reference and the use of
More informationAlgorithm Analysis. Big Oh
Algorithm Analysis with Big Oh Data Structures and Design with Java and JUnit Chapter 12 Rick Mercer Algorithm Analysis w Objectives Analyze the efficiency of algorithms Analyze a few classic algorithms
More informationArrays. Week 4. Assylbek Jumagaliyev
Arrays Week 4 Assylbek Jumagaliyev a.jumagaliyev@iitu.kz Introduction Arrays Structures of related data items Static entity (same size throughout program) A few types Pointer-based arrays (C-like) Arrays
More informationBuilding Java Programs
Building Java Programs Chapter 13 binary search and complexity reading: 13.1-13.2 2 Wednesday Questions Are ListNodes used? Yes! In Java s LinkedList What does the Stack tostring represent? bottom [1,
More informationSorting/Searching and File I/O. Sorting Searching Reading for this lecture: L&L
Sorting/Searching and File I/O Sorting Searching Reading for this lecture: L&L 10.4-10.5 1 Sorting Sorting is the process of arranging a list of items in a particular order The sorting process is based
More informationCSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting. Dan Grossman Fall 2013
CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting Dan Grossman Fall 2013 Introduction to Sorting Stacks, queues, priority queues, and dictionaries all focused on providing one element
More informationSORTING AND SEARCHING
SORTING AND SEARCHING Today Last time we considered a simple approach to sorting a list of objects. This lecture will look at another approach to sorting. We will also consider how one searches through
More informationBINARY SEARCH TREES cs2420 Introduction to Algorithms and Data Structures Spring 2015
BINARY SEARCH TREES cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 7 due tonight at midnight -asking for regrades through assignment 5 and midterm must
More informationTable ADT and Sorting. Algorithm topics continuing (or reviewing?) CS 24 curriculum
Table ADT and Sorting Algorithm topics continuing (or reviewing?) CS 24 curriculum A table ADT (a.k.a. Dictionary, Map) Table public interface: // Put information in the table, and a unique key to identify
More informationCSE 143 Lecture 14. Sorting
CSE 143 Lecture 14 Sorting slides created by Marty Stepp and Ethan Apter http://www.cs.washington.edu/143/ Sorting sorting: Rearranging the values in an array or collection into a specific order (usually
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationSearching, Sorting. Arizona State University 1
Searching, Sorting CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 9 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State
More informationPractice with if-then-else. COMP101 Lecture 7 Spring 2018
Practice with if-then-else COMP101 Lecture 7 Spring 2018 Announcements PS01 - Due Friday at 11:59pm 3 parts, each in increasing difficulty. You will submit individually for each. Tutoring - Tomorrow from
More informationCSC 222: Object-Oriented Programming. Fall 2015
CSC 222: Object-Oriented Programming Fall 2015 Searching and sorting sequential search vs. binary search algorithm analysis: big-oh, rate-of-growth O(N 2 ) sorts: insertion sort, selection sort 1 Searching
More informationRecursive Data Types, null, and Linked Lists
Recursive Data Types,, and Linked Lists Lecture 16 "hello" "world" Data Buddies Survey Undergraduate Survey http://bit.ly/csundergraduate Graduate Survey http://bit.ly/csgraduate What is it? Anonymous
More informationlogical operators and else-if statements
logical operators and else-if statements Lecture 5 Step 0: TODAY open http://localhost:3000/close -- if this errors that's OK / expected Step 1: Open VSCode and its Integrated Terminal Step 2: npm run
More informationSorting and Searching
Sorting and Searching Sorting o Simple: Selection Sort and Insertion Sort o Efficient: Quick Sort and Merge Sort Searching o Linear o Binary Reading for this lecture: http://introcs.cs.princeton.edu/python/42sort/
More informationboolean Expressions Relational and Equality Operators and if-then-else Conditional Control Statement
boolean Expressions Relational and Equality Operators and if-then-else Conditional Control Statement Go to poll.unc.edu Sign-in via this website then go to pollev.com/compunc VSCode: Open Project -> View
More informationCSC 222: Object-Oriented Programming Spring 2012
CSC 222: Object-Oriented Programming Spring 2012 Searching and sorting sequential search algorithm analysis: big-oh, rate-of-growth binary search insertion sort, selection sort 1 Searching a list suppose
More informationFor searching and sorting algorithms, this is particularly dependent on the number of data elements.
Looking up a phone number, accessing a website and checking the definition of a word in a dictionary all involve searching large amounts of data. Searching algorithms all accomplish the same goal finding
More informationO(1) How long does a function take to run? CS61A Lecture 6
How long does a function take to run? It depends on what computer it is run on! CS6A Lecture 6 20-06-28 Colleen Lewis Assumptions We want something independent of the speed of the computer We typically
More informationLesson 12: Recursion, Complexity, Searching and Sorting. Modifications By Mr. Dave Clausen Updated for Java 1_5
Lesson 12: Recursion, Complexity, Searching and Sorting Modifications By Mr. Dave Clausen Updated for Java 1_5 1 Lesson 12: Recursion, Complexity, and Searching and Sorting Objectives: Design and implement
More informationCSE 373: Data Structures and Algorithms
CSE 373: Data Structures and Algorithms Lecture 19: Comparison Sorting Algorithms Instructor: Lilian de Greef Quarter: Summer 2017 Today Intro to sorting Comparison sorting Insertion Sort Selection Sort
More informationSEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY. Lecture 11 CS2110 Spring 2016
1 SEARCHING, SORTING, AND ASYMPTOTIC COMPLEXITY Lecture 11 CS2110 Spring 2016 Time spent on A2 2 Histogram: [inclusive:exclusive) [0:1): 0 [1:2): 24 ***** [2:3): 84 ***************** [3:4): 123 *************************
More informationVariables and Data Representation
You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented
More informationCS Sorting Terms & Definitions. Comparing Sorting Algorithms. Bubble Sort. Bubble Sort: Graphical Trace
CS 704 Introduction to Data Structures and Software Engineering Sorting Terms & Definitions Internal sorts holds all data in RAM External sorts use Files Ascending : Low to High Descending : High to Low
More informationRecursion: The Beginning
Department of Computer Science and Engineering Chinese University of Hong Kong This lecture will introduce a useful technique called recursion. If used judiciously, this technique often leads to elegant
More informationData Types. Operators, Assignment, Output and Return Statements
Pseudocode Reference Sheet rev 4/17 jbo Note: This document has been developed by WeTeach_CS, and is solely based on current study materials and practice tests provided on the TEA website. An official
More informationAnnouncements. Lecture 04b Header Classes. Review (again) Comments on PA1 & PA2. Warning about Arrays. Arrays 9/15/17
Announcements Lecture 04b Sept. 14 th, 2017 Midterm #1: Sept. 26 th (week from Tuesday) Code distributed one week from today PA2 test cases & answers posted Quiz #4 next Tuesday (before class) PA3 due
More informationASSIGNMENT 3. COMP-202, Fall 2014, All Sections. Due: October 24 th, 2014 (23:59)
ASSIGNMENT 3 COMP-202, Fall 2014, All Sections Due: October 24 th, 2014 (23:59) Please read the entire pdf before starting. You must do this assignment individually and, unless otherwise specified, you
More informationCSE 332: Data Structures & Parallelism Lecture 10:Hashing. Ruth Anderson Autumn 2018
CSE 332: Data Structures & Parallelism Lecture 10:Hashing Ruth Anderson Autumn 2018 Today Dictionaries Hashing 10/19/2018 2 Motivating Hash Tables For dictionary with n key/value pairs insert find delete
More informationCSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationFun 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 informationMITOCW watch?v=w_-sx4vr53m
MITOCW watch?v=w_-sx4vr53m The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To
More informationUnit 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 informationSorting. Weiss chapter , 8.6
Sorting Weiss chapter 8.1 8.3, 8.6 Sorting 5 3 9 2 8 7 3 2 1 4 1 2 2 3 3 4 5 7 8 9 Very many different sorting algorithms (bubblesort, insertion sort, selection sort, quicksort, heapsort, mergesort, shell
More informationWhat is sorting? Lecture 36: How can computation sort data in order for you? Why is sorting important? What is sorting? 11/30/10
// CS Introduction to Computation " UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department Professor Andrea Arpaci-Dusseau Fall Lecture : How can computation sort data in order for you? What is sorting?
More informationHash Tables. CS 311 Data Structures and Algorithms Lecture Slides. Wednesday, April 22, Glenn G. Chappell
Hash Tables CS 311 Data Structures and Algorithms Lecture Slides Wednesday, April 22, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005
More informationCSE 373 MAY 10 TH SPANNING TREES AND UNION FIND
CSE 373 MAY 0 TH SPANNING TREES AND UNION FIND COURSE LOGISTICS HW4 due tonight, if you want feedback by the weekend COURSE LOGISTICS HW4 due tonight, if you want feedback by the weekend HW5 out tomorrow
More informationThe time and space are the two measure for efficiency of an algorithm.
There are basically six operations: 5. Sorting: Arranging the elements of list in an order (either ascending or descending). 6. Merging: combining the two list into one list. Algorithm: The time and space
More informationAlgorithm 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 informationCOMP Data Structures
COMP 2140 - Data Structures Shahin Kamali Topic 5 - Sorting University of Manitoba Based on notes by S. Durocher. COMP 2140 - Data Structures 1 / 55 Overview Review: Insertion Sort Merge Sort Quicksort
More informationCSE 143 Lecture 16 (B)
CSE 143 Lecture 16 (B) Sorting reading: 13.1, 13.3-13.4 slides created by Marty Stepp http://www.cs.washington.edu/143/ Sorting sorting: Rearranging the values in an array or collection into a specific
More informationA Balanced Introduction to Computer Science
A Balanced Introduction to Computer Science David Reed, Creighton University 2005 Pearson Prentice Hall ISBN 0-13-046709-X Chapter 8 Algorithms and Programming Languages 1 Algorithms the central concept
More informationAnnouncement. Submit assignment 3 on CourSys Do not hand in hard copy Due Friday, 15:20:00. Caution: Assignment 4 will be due next Wednesday
Announcement Submit assignment 3 on CourSys Do not hand in hard copy Due Friday, 15:20:00 Caution: Assignment 4 will be due next Wednesday Recursion Examples and Simple Searching CMPT 125 Jan. 28 Recursion
More informationTesting and Debugging
Testing and Debugging Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Warm Up From Last Lecture: - What are the expected operations for a map ADT? - How would you implement a Map - To optimize
More informationData Types and the main Function
COMP101 - UNC Data Types and the main Function Lecture 03 Announcements PS0 Card for Someone Special Released TODAY, due next Wednesday 9/5 Office Hours If your software has issues today, come to office
More informationDUKE UNIVERSITY Department of Computer Science. Test 1: CompSci 100
DUKE UNIVERSITY Department of Computer Science Test 1: CompSci 100 Name (print): Community Standard acknowledgment (signature): Problem 1 value 30 pts. grade Problem 2 16 pts. Problem 3 14 pts. Problem
More informationSearch algorithms and informal introduction to asymptotic complexity
Search algorithms and informal introduction to asymptotic complexity Organization Searching in arrays Linear search Generic Programming Binary search Asymptotic complexity of algorithms Informal, for now
More informationC How to Program, 7/e by Pearson Education, Inc. All Rights Reserved.
C How to Program, 7/e This chapter serves as an introduction to data structures. Arrays are data structures consisting of related data items of the same type. In Chapter 10, we discuss C s notion of
More informationThe University Of Michigan. EECS402 Lecture 07. Andrew M. Morgan. Sorting Arrays. Element Order Of Arrays
The University Of Michigan Lecture 07 Andrew M. Morgan Sorting Arrays Element Order Of Arrays Arrays are called "random-access" data structures This is because any element can be accessed at any time Other
More informationCOMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University
COMP251: Algorithms and Data Structures Jérôme Waldispühl School of Computer Science McGill University About Me Jérôme Waldispühl Associate Professor of Computer Science I am conducting research in Bioinformatics
More informationRecall from Last Time: Big-Oh Notation
CSE 326 Lecture 3: Analysis of Algorithms Today, we will review: Big-Oh, Little-Oh, Omega (Ω), and Theta (Θ): (Fraternities of functions ) Examples of time and space efficiency analysis Covered in Chapter
More information10/5/2016. Comparing Algorithms. Analyzing Code ( worst case ) Example. Analyzing Code. Binary Search. Linear Search
10/5/2016 CSE373: Data Structures and Algorithms Asymptotic Analysis (Big O,, and ) Steve Tanimoto Autumn 2016 This lecture material represents the work of multiple instructors at the University of Washington.
More informationB+ Tree Review. CSE332: Data Abstractions Lecture 10: More B Trees; Hashing. Can do a little better with insert. Adoption for insert
B+ Tree Review CSE2: Data Abstractions Lecture 10: More B Trees; Hashing Dan Grossman Spring 2010 M-ary tree with room for L data items at each leaf Order property: Subtree between keys x and y contains
More informationAlgorithm Analysis. Performance Factors
Algorithm Analysis How can we demonstrate that one algorithm is superior to another without being misled by any of the following problems: Special cases Every algorithm has certain inputs that allow it
More information4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING
4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING 4.1.2 ALGORITHMS ALGORITHM An Algorithm is a procedure or formula for solving a problem. It is a step-by-step set of operations to be performed. It is almost
More information1. O(log n), because at worst you will only need to downheap the height of the heap.
These are solutions for the practice final. Please note that these solutions are intended to provide you with a basis to check your own answers. In order to get full credit on the exam, you must show all
More informationCSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting. Aaron Bauer Winter 2014
CSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting Aaron Bauer Winter 2014 The main problem, stated carefully For now, assume we have n comparable elements in an array and we want
More informationVARIABLES AND TYPES CITS1001
VARIABLES AND TYPES CITS1001 Scope of this lecture Types in Java the eight primitive types the unlimited number of object types Values and References The Golden Rule Primitive types Every piece of data
More informationCLO Assessment CLO1 Q1(10) CLO2 Q2 (10) CLO3 Q4 (10) CLO4 Q3a (4)
CS210 Data Structures (171) Final Exam Name: ID Instructions: This exam contains four questions with multiple parts. Time allowed: 180 minutes Closed Book, Closed Notes. There are 10 pages in this exam
More informationIntroduction to Decision Structures. Boolean & If Statements. Different Types of Decisions. Boolean Logic. Relational Operators
Boolean & If Statements Introduction to Decision Structures Chapter 4 Fall 2015, CSUS Chapter 4.1 Introduction to Decision Structures Different Types of Decisions A decision structure allows a program
More informationCSCE Java. Lab 13 - Searching & Sorting. Dr. Chris Bourke
CSCE 155 - Java Lab 13 - Searching & Sorting Dr. Chris Bourke Prior to Lab Before attending this lab: 1. Read and familiarize yourself with this handout. 2. Review notes on Search & Sorting Some additional
More information