Chapter 16: Searching, Sorting, and the vector Type

Slides:



Advertisements
Similar presentations
Chapter 10: Applications of Arrays and the class vector
Advertisements

C++ Programming:. From Problem Analysis
CSE Lecture 3 – Algorithms I
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Visual C++ Programming: Concepts and Projects
Chapter 19: Searching and Sorting Algorithms
Ver. 1.0 Session 5 Data Structures and Algorithms Objectives In this session, you will learn to: Sort data by using quick sort Sort data by using merge.
Chapter 11 Sorting and Searching. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Examine the linear search and.
1 Lecture 23:Applications of Arrays Introduction to Computer Science Spring 2006.
Objectives Learn how to implement the sequential search algorithm Explore how to sort an array using the selection sort algorithm Learn how to implement.
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (3) Recurrence Relation 11/11 ~ 11/14/2008 Yang Song.
Searching Arrays Linear search Binary search small arrays
CHAPTER 7: SORTING & SEARCHING Introduction to Computer Science Using Ruby (c) Ophir Frieder at al 2012.
Chapter 7: Arrays. In this chapter, you will learn about: One-dimensional arrays Array initialization Declaring and processing two-dimensional arrays.
Chapter 16: Searching, Sorting, and the vector Type.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 19: Searching and Sorting Algorithms.
Chapter 10 Applications of Arrays and Strings. Chapter Objectives Learn how to implement the sequential search algorithm Explore how to sort an array.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 19: Searching and Sorting Algorithms.
Applications of Arrays (Searching and Sorting) and Strings
Chapter 19: Searching and Sorting Algorithms
Data Structures & Algorithms CHAPTER 4 Searching Ms. Manal Al-Asmari.
C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 19: Searching and Sorting.
LAB#7. Insertion sort In the outer for loop, out starts at 1 and moves right. It marks the leftmost unsorted data. In the inner while loop, in starts.
CSC 211 Data Structures Lecture 13
Chapter 14: Searching and Sorting
Chapter 12 Binary Search and QuickSort Fundamentals of Java.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 10: Applications of Arrays (Searching and Sorting) and the vector Type.
Chapter 18: Searching and Sorting Algorithms. Objectives In this chapter, you will: Learn the various search algorithms Implement sequential and binary.
Searching & Sorting Programming 2. Searching Searching is the process of determining if a target item is present in a list of items, and locating it A.
Sorting and Searching. Selection Sort  “Search-and-Swap” algorithm 1) Find the smallest element in the array and exchange it with a[0], the first element.
Sorting Algorithms: Selection, Insertion and Bubble.
1 Searching and Sorting Searching algorithms with simple arrays Sorting algorithms with simple arrays –Selection Sort –Insertion Sort –Bubble Sort –Quick.
1 Chapter 13-2 Applied Arrays: Lists and Strings Dale/Weems.
Chapter 10: Class Vector and String, and Enumeration Types Java Programming: Program Design Including Data Structures Program Design Including Data Structures.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 14 Searching and Sorting.
Searching Topics Sequential Search Binary Search.
Chapter 16: Searching, Sorting, and the vector Type.
1 compares each element of the array with the search key. works well for small arrays or for unsorted arrays works for any table slow can put more commonly.
Java Programming: Guided Learning with Early Objects Chapter 8 Applications of Arrays (Sorting and Searching) and Strings.
Searching Arrays Linear search Binary search small arrays
Chapter 9: Sorting and Searching Arrays
Searching and Sorting Algorithms
Sorting With Priority Queue In-place Extra O(N) space
Data Structures I (CPCS-204)
Data Structures Using C++ 2E
Lecture 14 Searching and Sorting Richard Gesick.
Introduction to Search Algorithms
Data Structures Using C++ 2E
Searching & Sorting "There's nothing hidden 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.
Data Structures Using C++ 2E
Linear and Binary Search
Objectives At the end of the class, students are expected to be able to do the following: Understand the purpose of sorting technique as operations on.
Introduction to Search Algorithms
Chapter 8 Arrays Objectives
Winter 2018 CISC101 12/2/2018 CISC101 Reminders
Lecture 11 Searching and Sorting Richard Gesick.
Searching and Sorting Arrays
MSIS 655 Advanced Business Applications Programming
Standard Version of Starting Out with C++, 4th Edition
24 Searching and Sorting.
Data Structures (CS212D) Week # 2: Arrays.
Topic 24 sorting and searching arrays
Priority Queues & Heaps
Chapter 8 Arrays Objectives
CPS120: Introduction to Computer Science
CPS120: Introduction to Computer Science
Searching/Sorting/Searching
Data Structures Using C++ 2E
Applications of Arrays
Presentation transcript:

Chapter 16: Searching, Sorting, and the vector Type

Objectives In this chapter, you will: Learn about list processing and how to search a list using sequential search Explore how to sort an array using the bubble sort and insertion sort algorithms Learn how to implement the binary search algorithm Become familiar with the vector type C++ Programming: From Problem Analysis to Program Design, Seventh Edition

List Processing List: a collection of values of the same type Array is a convenient place to store a list Basic list operations: Search the list for a given item Sort the list Insert an item in the list Delete an item from the list Print the list C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Searching Sequential search algorithm: Not very efficient for large lists On average, number of key comparisons is equal to half the size of the list Does not assume that the list is sorted If the list is sorted, the search algorithm can be improved C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort list[0]...list[n - 1] List of n elements, indexed 0 to n – 1 Example: a list of five elements (Figure 16-1) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) Series of n - 1 iterations Successive elements list[index] and list[index + 1] of list are compared If list[index] > list[index + 1] Swap list[index] and list[index + 1] Smaller elements move toward the top (beginning of the list) Larger elements move toward the bottom (end of the list) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Bubble Sort (cont’d.) List of length n If n = 1000 Exactly n(n - 1) / 2 key comparisons On average n(n - 1) / 4 item assignments If n = 1000 500,000 key comparisons and 250,000 item assignments Can improve performance if we stop the sort when no swapping occurs in an iteration C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort Sorts the list by moving each element to its proper place C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) Consider the element list[4] First element of unsorted list list[4] < list[3] Move list[4] to proper location at list[2] C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) During the sorting phase, the array is divided into two sublists: sorted and unsorted Sorted sublist elements are sorted Elements in the unsorted sublist are to be moved into their proper places in the sorted sublist, one at a time C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Insertion Sort (cont’d.) List of length n About (n2 + 3n – 4) / 4 key comparisons About n(n – 1) / 4 item assignments If n = 1000 250,000 key comparisons 250,000 item assignments C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Binary Search Much faster than a sequential search List must be sorted “Divide and conquer” Compare search item with middle element If less than middle: search only upper half of list If more than middle: search only lower half of list C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Binary Search (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Performance of Binary Search If L is a sorted list of size 1024 Every iteration of the while loop cuts the size of the search list by half At most, 11 iterations to determine whether x is in L Binary search will make 22 comparisons at most If L has1,048,576 elements Binary search makes 42 item comparisons at most C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Performance of Binary Search (cont’d.) For a sorted list of length n: Maximum number comparisons is 2log2n + 2 C++ Programming: From Problem Analysis to Program Design, Seventh Edition

vector type (class) Only a fixed number of elements can be stored in an array Inserting and removing elements causes shifting of remaining elements vector type implements a list vector container vector vector object object C++ Programming: From Problem Analysis to Program Design, Seventh Edition

vector type (class) (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

vector type (class) (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

vector type (class) (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Vectors and Range-Based for loops Can use range-based for loop in C++11 Standard to process vector elements for (auto p : list) //for all p in list cout << p << " "; cout << endl; Can initialize a vector object vector<int> intList = {13, 75, 28, 35}; Not supported by all C++11 compilers C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Summary List Sequential search Sorting algorithms Set of elements of the same type Sequential search Searches each element until item is found Sorting algorithms Bubble sort Insertion sort C++ Programming: From Problem Analysis to Program Design, Seventh Edition

Summary (cont’d.) Binary search vector type Much faster than sequential search Requires that the list is sorted vector type Implements a list Can increase/decrease in size during program execution Must specify the type of object the vector stores C++ Programming: From Problem Analysis to Program Design, Seventh Edition