Beginning Programming (Pascal) Lecture 21
|
|
- Silvia Wade
- 6 years ago
- Views:
Transcription
1 1. Keys: Lists contain elements called keys. Consider program list01. Type list_t defines an array of ten integers. Variable list has type list_t. Variable list implements the list. Each integer in the array is a key. Procedure listinit assigns values to the list. Note that formal parameter L is passed by reference. A parameter passed by reference is an alias for the actual argument. The actual argument is variable list. Formal parameter L is an alias for variable list. Values assigned to elements of formal parameter L are really assigned to variable list. Procedure listwrite formats and prints values of a list. The first formal parameter, L, specifies the implementation of a list. A list must have type list_t. Note, again, that formal parameter L is passed by reference. The second parameter, N, dictates how many elements of the list are to be printed. Parameter N is passed by value. The third parameter, f, identifies the file where the list is to be written. Parameters of type text must be passed by reference. Procedure listwrite prints keys in the list separated by commas and enclosed in curly braces. A new line is printed before the list is printed. The first two characters printed are "L=". Output for program list01 is shown below. program list01; type list_t=array[1..10] of integer; L[1]:=1; L[2]:=1; for a:=3 to 10 do L[a]:=L[a-1]+L[a-2]; {list01} listwrite(list,10,output); end{list01}. Output for program list01. L={1,1,2,3,5,8,13,21,34,55} 1
2 2. Searching: A particular key in a list may be sought. 3. Match: The index of the key is returned when the key sought is found. If the key is not in the list an invalid index is returned. 4. Unordered list: To find a key in an unordered list every element in the list must be tested. Consider program list02. Program list02 is an enhancement of program list01. Program list02 contains subprograms listinit, listwrite, and listfind. Program list02 creates an unordered list, prints the list, finds a matching key in the list and attempts to find a key not in the list. Output produced by program list02 is given below the listing of the program. Procedure listinit assigns initial values to the list implemented in variable list as an array of ten integers. Procedure listinit creates an unordered list. Procedure listwrite formats and prints a list as it did in program list01. Function listfind attempts to find a key in the input list that matches the value of formal parameter key. If the key is found the index is returned. If the key is not found a value of zero is returned. program list02; type list_t=array[1..10] of integer; L[ 1]:=-512; L[ 2]:= 256; L[ 3]:=-128; L[ 4]:= 64; L[ 5]:= -32; L[ 6]:= 16; L[ 7]:= -8; L[ 8]:= 4; L[ 9]:= -2; L[10]:= 1; function listfind(var L:list_t;N:integer;key:integer):integer; {listfind} listfind:=0; if key=l[a] then listfind:=a end{listfind}; 2
3 {list02} listwrite(list,10,output); writeln; writeln ('16 is in element ',listfind(list,10,16):1,' of array list.' ); writeln ('Function listfind returns ',listfind(list,10,17):1,' when the key sought is 17.' ) end{list02}. Output for program list02. L={-512,256,-128,64,-32,16,-8,4,-2,1} 16 is in element 6 of array list. Function listfind returns 0 when the key sought is Searching for the largest key. Finding the largest key in an unordered list is like finding the high water mark in a river. As the river rises the mark rises. However, when the river recedes, the high water mark remains until the river rises above new mark. Here is the algorithm for finding the index of the largest key Assume the first element contains the largest key For each element in the list starting with the second element If the current element is larger than the largest then record the index of the current element as the largest. Program list03 contains function findmax that finds the index of the largest element in the list using the algorithm shown above. Output for program list03 is given below the listing of the program. program list03; type list_t=array[1..10] of integer; L[ 1]:=-512; L[ 2]:= 256; L[ 3]:=-128; L[ 4]:= 64; L[ 5]:= -32; L[ 6]:= 16; L[ 7]:= -8; L[ 8]:= 4; L[ 9]:= -2; L[10]:= 1; 3
4 function listmax(var L:list_t;N:integer):integer; var a:integer; iom:integer; {index of maximum element} {listmax} iom:=1; for a:=2 to N do if L[a]>L[iom] then iom:=a; listmax:=iom end{listmax}; {list03} listwrite(list,10,output); writeln; writeln(listmax(list,10):1,' is the index of maximum element.') end{list03}. Output for program list03. L={-512,256,-128,64,-32,16,-8,4,-2,1} 2 is the index of the maximum element. 6. Searching for the smallest key. Searching for the smallest key is highly similar to searching for the largest key. Traverse the entire list, one element at time, comparing the current element with the smallest element on record. If the current element is smaller than the recorded smallest, record the new element as the smallest. 7. Binary search. If the list is ordered, a key may be found using a much faster algorithm than testing every element in the list. Comparing the input key to an element in the list permits the algorithm to discard half the remaining elements in which to find a match each iteration. Consider array L shown below whose index values are given in the top row and whose element values are given in the bottom row. Search for the index of the element whose value is zero. To, guess that element 8 whose value is 13 is the key. Because 0<13 and the elements are in ascending order, we know that 0 cannot be in element 8 or in any element larger than 13. The range of values we have discarded is shaded. Darkly shaded areas indicate overlapping ranges. The value of variable lo exceeds the value of variable hi. 4
5 Select a value in the middle of the new range, say 2, whose index is 4. Ask the question again. Is the key, 0, less than the value selected. Yes, 0<2. Discard all values two or greater. Select a value in the middle of the new range, say 1, whose index is 2. Ask the question again. Is the key, 0, less than the value selected. Yes, 0<1. Discard all values one or greater. Select a value in the middle of the new range. The new range includes only a single value 0. Zero is the key we seek. Let us search for another key, 55. Begin the search as before. Select a value in the middle of the entire range. Select 13. Is 55<13? No. Is 55>13? Yes. Discard all values 13 or smaller. Select a value in the middle of the new range, say 89, whose index is 12. Ask the question again. Is 55<89? Yes, discard elements having a value of 89 or greater. Select a value in the middle of the new range, say 34, whose index is 10. Ask the question again. Is 55<34? No. Is 55>34? Yes, discard elements having a value of 34 or less. Only one value remains 55. Our algorithm returns the index 11. Function listfind in program list04 implements a binary search. Function listfind is called to find the index of the element matching the key 0. Results of program list04 given after the listing. program list04; const M=16; type list_t=array[1..m] of integer; L[1]:=0; L[2]:=1; for a:=3 to M do L[a]:=L[a-1]+L[a-2]; 5
6 function listfind(var L:list_t;N:integer;key:integer):integer; var lo,hi,m:integer; {listfind} lo:=1;hi:=n; repeat m:=(lo+hi) div 2; if L[m]<key then lo:=m+1; if L[m]>key then hi:=m-1; until (lo>hi) or (L[m]=key); if (lo>hi) then listfind:=0 else listfind:=m; end{listfind}; {list04} listwrite(list,m,output); writeln; writeln('0 is in element ',listfind(list,m,0):1,'.') end{list04}. 8. Tracing program execution. Another way of looking at a binary search is to record the values computed for variables. Values computed in each iteration are recorded in a row. Note that either the value of variable hi or variable lo is shaded in each row after the first row. Values that are shaded are those that have been changed in the previous iteration. key=0 lo hi m L[m] L[m]<key L[m]>key L[m]=key lo>hi <0, No 13>0, Yes 13=0, No 1>16, No <0, No 2>0, Yes 2=0, No 1>7, No <0, No 1>0, Yes 1=0, No 1>3, No <0, No 0>0, No 0=0, Yes 1>1, No Array L 6
7 key=55 lo hi m L[m] L[m]<key L[m]>key L[m]=key lo>hi <55, Y 13>55, N 13=55, N 1>16, N <55, N 89>55, Y 89=55, N 9>16, N <55, Y 34>55, N 34=55, N 9>11, N <55, N 55>55, N 55=55, Y 11>11, N Array L key=4 lo hi m L[m] L[m]<key L[m]>key L[m]=key lo>hi <4, N 13>4, Y 13=4, N 1>16, N <4, Y 2>4, N 2=4, N 1>7, N <4, N 5>4, Y 5=4, N 5>7, N <4, Y 3>4, N 3=4, N 5>6, N <4, N 5>4, Y 5=4, N 6>6, N <4, Y 2>4, N 2=4, N 6>5, Y Array L 7
Binary 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 information(Refer Slide Time: 00:50)
Programming, Data Structures and Algorithms Prof. N.S. Narayanaswamy Department of Computer Science and Engineering Indian Institute of Technology Madras Module - 03 Lecture 30 Searching Unordered linear
More informationBeginning Programming (Pascal)
Assignment: Program Files: Display and Keyboard Input: Program p06 sorts a list of integers. File i06.dat in the class directory ~trt/cs1513/i06.dat has a list of integers that can be used to test your
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 informationLecture 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 informationHigh Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd
El-Shorouk Academy Acad. Year : 2013 / 2014 High Institute of Computer Science & Information Technology Term : 1 st Year : 2 nd Computer Science Department Object Oriented Programming Section (1) Arrays
More informationLecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays)
Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays) In this lecture, you will: Learn about arrays Explore how to declare and manipulate data into arrays Understand the meaning of
More informationProgramming II Test 2 Revision 2 CMSC 2613 Autumn 2003
Programming II Test 2 Revision 2 1. Write your name on your scantron in the space labeled NAME. 2. Write your CRN number in the space labeled HOUR. 3. Write the date in the space labeled DATE. 4. Write
More informationDiscrete Structures Lecture 14
Introduction Instead of closely following our text in chapter 3, we take a different approach based on the industrial experience of your instructor. First, we narrow the application of algorithms to algorithms
More informationChapter 8 Arrays and Strings. Objectives. Objectives (cont d.) Introduction. Arrays 12/23/2016. In this chapter, you will:
Chapter 8 Arrays and Strings Objectives In this chapter, you will: Learn about arrays Declare and manipulate data into arrays Learn about array index out of bounds Learn about the restrictions on array
More informationBinary Search Trees. See Section 11.1 of the text.
Binary Search Trees See Section 11.1 of the text. Consider the following Binary Search Tree 17 This tree has a nice property: for every node, all of the nodes in its left subtree have values less than
More informationBinary Search. Not your parents binary search. Ethan Arnold, Arnav Sastry. Spring 2017 CS 104C
Binary Search Not your parents binary search Ethan Arnold, Arnav Sastry CS 104C Spring 2017 1 / 10 How to write binary search Java: 2 / 10 How to write binary search Java: Collections.binarySearch(list,
More informationChapter Nine Arrays. Sixth Edition
Microsoft Visual Basic 2015: Reloaded Sixth Edition Chapter Nine Arrays Objectives After studying this chapter, you should be able to: Declare and initialize one-dimensional and twodimensional arrays Store
More informationSpring 2017 CS 1110/1111 Exam 3
Spring 2017 CS 1110/1111 Exam 3 Bubble in your computing ID, top to bottom, in the footer of this page. We use an optical scanner to read it, so fill in the bubbles darkly. If you have a shorter ID, leave
More informationCH 21 CONSECUTIVE INTEGERS
201 CH 21 CONSECUTIVE INTEGERS Introduction An integer is either a positive whole number, or zero, or a negative whole number; in other words it s the collection of numbers:... 4, 3, 2, 1, 0, 1, 2, 3,
More informationOutline. What s wrong with Enumerations? Indexing Searching Self-Organizing Vectors Binary Searching Sorting Command line Arguments.
Outline What s wrong with Enumerations? Indexing Searching Self-Organizing Vectors Binary Searching Sorting Command line Arguments 1 What s wrong with Enumerations? Nothing is wrong with them, but they
More informationSorting Algorithms. Array Data is being arranged in ascending order using the bubble sort algorithm. #1 #2 #3 #4 #5 #6 #7
Sorting Algorithms One of the fundamental problems of computer science is ordering a list of items. There s a plethora of solutions to this problem, known as sorting algorithms. Some sorting algorithms
More informationLECTURE 17. Array Searching and Sorting
LECTURE 17 Array Searching and Sorting ARRAY SEARCHING AND SORTING Today we ll be covering some of the more common ways for searching through an array to find an item, as well as some common ways to sort
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 informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #43. Multidimensional Arrays
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #43 Multidimensional Arrays In this video will look at multi-dimensional arrays. (Refer Slide Time: 00:03) In
More information5.5 Completing the Square for the Vertex
5.5 Completing the Square for the Vertex Having the zeros is great, but the other key piece of a quadratic function is the vertex. We can find the vertex in a couple of ways, but one method we ll explore
More informationChapter 8 Search and Sort
Chapter 8 Search and Sort Goals This chapter begins by showing two algorithms used with arrays: selection sort and binary search. After studying this chapter, you will be able to understand how binary
More informationTest Bank Ver. 5.0: Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5 th edition, Frank M. Carrano
Chapter 2 Recursion: The Mirrors Multiple Choice Questions 1. In a recursive solution, the terminates the recursive processing. a) local environment b) pivot item c) base case d) recurrence relation 2.
More informationCS261 Data Structures. Ordered Bag Dynamic Array Implementa;on
CS261 Data Structures Ordered Bag Dynamic Array Implementa;on Goals Understand the downside of unordered containers Binary Search Ordered Bag ADT Downside of unordered collec;ons What is the complexity
More informationUnit 3 Fill Series, Functions, Sorting
Unit 3 Fill Series, Functions, Sorting Fill enter repetitive values or formulas in an indicated direction Using the Fill command is much faster than using copy and paste you can do entire operation in
More informationUnit 3 Functions Review, Fill Series, Sorting, Merge & Center
Unit 3 Functions Review, Fill Series, Sorting, Merge & Center Function built-in formula that performs simple or complex calculations automatically names a function instead of using operators (+, -, *,
More informationLogic & Algorithms Foundations of Computer Science Behrouz A. Forouzan, Brooks/Cole Thomson Learning, Pacific Grove, USA, 2003.
OVERVIEW Logic & Algorithms Foundations of Computer Science Behrouz A. Forouzan, Brooks/Cole Thomson Learning, Pacific Grove, USA, 2003. OBJECTIVES After reading this chapter, the reader should be able
More informationVisual C# 2012 How to Program by Pe ars on Ed uc ati on, Inc. All Ri ght s Re ser ve d.
Visual C# 2012 How to Program 1 99 2-20 14 by Pe ars on Ed uc ati on, Inc. All Ri ght s Re ser ve d. 1992-2014 by Pearson Education, Inc. All 1992-2014 by Pearson Education, Inc. All Although commonly
More informationBinary Search. Roland Backhouse February 5th, 2001
1 Binary Search Roland Backhouse February 5th, 2001 Outline 2 An implementation in Java of the card-searching algorithm is presented. Issues concerning the correctness of the implementation are raised
More informationIterative Searching and Sorting
B B Chapter 1 Iterative Searching and Sorting Probably the most important algorithms in all of computer science are the searching and sorting algorithms. They are important because they are so common.
More informationReview of Important Topics in CS1600. Functions Arrays C-strings
Review of Important Topics in CS1600 Functions Arrays C-strings Array Basics Arrays An array is used to process a collection of data of the same type Examples: A list of names A list of temperatures Why
More informationCHAPTER 4 FUNCTIONS. 4.1 Introduction
CHAPTER 4 FUNCTIONS 4.1 Introduction Functions are the building blocks of C++ programs. Functions are also the executable segments in a program. The starting point for the execution of a program is main
More informationOutline. 14. Organization. Programming in Java. Computer Science Dept Va Tech August D Barnette, B Keller & P Schoenhoff
Outline What s wrong with Enumerations? Indexing Searching Self-Organizing Vectors Binary Searching Sorting Arrays Command line Arguments Indexing Strings 1 What s wrong with Enumerations? Nothing is wrong
More informationJME Language Reference Manual
JME Language Reference Manual 1 Introduction JME (pronounced jay+me) is a lightweight language that allows programmers to easily perform statistic computations on tabular data as part of data analysis.
More informationC/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 informationDiscrete Structures Lecture 15
Time Complexity:, Examples Introduction The most difficult part of our discussion of time complexity is the computation of, the timing function for a code fragment. Once the timing function is known, it
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationSubject: Computer Science
Subject: Computer Science Topic: Data Types, Variables & Operators 1 Write a program to print HELLO WORLD on screen. 2 Write a program to display output using a single cout statement. 3 Write a program
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2017S-06 Binary Search Trees David Galles Department of Computer Science University of San Francisco 06-0: Ordered List ADT Operations: Insert an element in the list
More information6. 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 informationChapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationIn this session we will cover the following sub-topics: 1.Identifiers 2.Variables 3.Keywords 4.Statements 5.Comments 6.Whitespaces 7.Syntax 8.
In this session we will cover the following sub-topics: 1.Identifiers 2.Variables 3.Keywords 4.Statements 5.Comments 6.Whitespaces 7.Syntax 8.Semantic www.tenouk.com, 1/16 C IDENTIFIERS 1. Is a unique
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 informationPRAM Divide and Conquer Algorithms
PRAM Divide and Conquer Algorithms (Chapter Five) Introduction: Really three fundamental operations: Divide is the partitioning process Conquer the the process of (eventually) solving the eventual base
More informationARRAYS and ARRAYLISTS
CHAPTER 6 ARRAYS and ARRAYLISTS Copyright 2013 by John Wiley & Sons. All rights reserved. Slides by Donald W. Smith TechNeTrain.com Final Draft 10/30/2011 Chapter Goals q To collect elements using arrays
More informationCSE101-lec#19. Array searching and sorting techniques. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU. LPU CSE101 C Programming
CSE101-lec#19 Array searching and sorting techniques Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU Outline Introduction Linear search Binary search Bubble sort Introduction The process of finding
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 informationData Abstraction & Problem Solving with C++: Walls and Mirrors 6th Edition Carrano, Henry Test Bank
Data Abstraction & Problem Solving with C++: Walls and Mirrors 6th Edition Carrano, Henry Test Bank Download link: https://solutionsmanualbank.com/download/test-bank-for-data-abstractionproblem-solving-with-c-walls-and-mirrors-6-e-carrano-henry/
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 informationTail Recursion: working from the beginning towards the end.
Tail Recursion Recursion 1 Tail Recursion: working from the beginning towards the end. # X list of integers to be summed # Start start summing at this index... # Stop... and stop summing at this index
More informationProgramming 2. Topic 8: Linked Lists, Basic Searching and Sorting
RMIT School of Computer Science and Information Technology Programming 2 Topic 8: Linked Lists, Basic Searching and Sorting Lecture Slides COPYRIGHT 2008 RMIT University. Original content by: Peter Tilmanis,
More informationChapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 3 More Flow of Control Overview 3.1 Using Boolean Expressions 3.2 Multiway Branches 3.3 More about C++ Loop Statements 3.4 Designing Loops Slide 3-3 Flow Of Control Flow of control refers to the
More information8 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 informationDeclaring Pointers. Declaration of pointers <type> *variable <type> *variable = initial-value Examples:
1 Programming in C Pointer Variable A variable that stores a memory address Allows C programs to simulate call-by-reference Allows a programmer to create and manipulate dynamic data structures Must be
More information15. Pointers, Algorithms, Iterators and Containers II
498 Recall: Pointers running over the Array 499 Beispiel 15. Pointers, Algorithms, Iterators and Containers II int a[5] = 3, 4, 6, 1, 2; for (int p = a; p < a+5; ++p) std::cout
More informationJVM (java) compiler. A Java program is either a library of static methods (functions) or a data type definition
Programming Model Basic Structure of a Java Program The Java workflow editor (Code) P.java compiler (javac) P.class JVM (java) output A Java program is either a library of static methods (functions) or
More informationBinary Search. CS 5010 Program Design Paradigms Bootcamp Lesson 8.2
Binary Search CS 5010 Program Design Paradigms Bootcamp Lesson 8.2 Mitchell Wand, 2012-2017 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. 1 Introduction
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationCS 331 Fall 2017 Midterm Exam 2
CS 331 Fall 2017 Midterm Exam 2 Instructions: This exam is closed-book, closed-notes. Calculators are not permitted. For numbered, multiple-choice questions, fill your answer in the corresponding row on
More information1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion
1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller
More informationArrays. Arizona State University 1
Arrays CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 8 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationC Arrays. Group of consecutive memory locations Same name and type. Array name + position number. Array elements are like normal variables
1 6 C Arrays 6.2 Arrays 2 Array Group of consecutive memory locations Same name and type To refer to an element, specify Array name + position number arrayname[ position number ] First element at position
More informationChapter 10 - Notes Applications of Arrays
Chapter - Notes Applications of Arrays I. List Processing A. Definition: List - A set of values of the same data type. B. Lists and Arrays 1. A convenient way to store a list is in an array, probably a
More information\n is used in a string to indicate the newline character. An expression produces data. The simplest expression
Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of
More informationQUIZ. 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 informationData Structure and Algorithm Midterm Reference Solution TA
Data Structure and Algorithm Midterm Reference Solution TA email: dsa1@csie.ntu.edu.tw Problem 1. To prove log 2 n! = Θ(n log n), it suffices to show N N, c 1, c 2 > 0 such that c 1 n ln n ln n! c 2 n
More information8/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 informationCS302 - 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 informationC++ Standard Template Library
C++ Template Library Comp Sci 1575 Data Structures Outline 1 2 3 4 Data structures Color key: Array sorting algorithms Outline 1 2 3 4 is part of standard namespace Old diagram of the standard Outline
More information14. Pointers, Algorithms, Iterators and Containers II
Recall: Pointers running over the Array Beispiel 14. Pointers, Algorithms, Iterators and Containers II Iterations with Pointers, Arrays: Indices vs. Pointers, Arrays and Functions, Pointers and const,
More informationFundamental mathematical techniques reviewed: Mathematical induction Recursion. Typically taught in courses such as Calculus and Discrete Mathematics.
Fundamental mathematical techniques reviewed: Mathematical induction Recursion Typically taught in courses such as Calculus and Discrete Mathematics. Techniques introduced: Divide-and-Conquer Algorithms
More informationWhy use recursion? Some problems are more easily expressed in a recursive definition
CS1706 Intro to Object Oriented Dev II - Spring 04 Announcements Week 6 Program 1 due Friday Grades I will have exam 1 graded Wednesday Material Recursion Recursion Definitions Recursion: see Recursion
More informationIntroduction to Software Development (ISD) Week 3
Introduction to Software Development (ISD) Week 3 Autumn term 2012 Aims of Week 3 To learn about while, for, and do loops To understand and use nested loops To implement programs that read and process
More informationUNIT 7. SEARCH, SORT AND MERGE
UNIT 7. SEARCH, SORT AND MERGE ALGORITHMS Year 2017-2018 Industrial Technology Engineering Paula de Toledo CONTENTS 7.1. SEARCH 7.2. SORT 7.3. MERGE 2 SEARCH Search, sort and merge algorithms Search (search
More informationCSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING Chapter 6: One Dimensional Array
Lesson Outcomes At the end of this chapter, student should be able to: Define array Understand requirement of array Know how to access elements of an array Write program using array Know how to pass array
More informationLecture 26. Introduction to Trees. Trees
Lecture 26 Introduction to Trees Trees Trees are the name given to a versatile group of data structures. They can be used to implement a number of abstract interfaces including the List, but those applications
More informationChapter 7 - Notes User-Defined Functions II
Chapter 7 - Notes User-Defined Functions II I. VOID Functions ( The use of a void function is done as a stand alone statement.) A. Void Functions without Parameters 1. Syntax: void functionname ( void
More informationAPCS Semester #1 Final Exam Practice Problems
Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester
More informationPerformance Metrics. Measuring Performance
Metrics 12/9/2003 6 Measuring How should the performance of a parallel computation be measured? Traditional measures like MIPS and MFLOPS really don t cut it New ways to measure parallel performance are
More informationChapter 8 Algorithms 1
Chapter 8 Algorithms 1 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define three construct and describe their use in algorithms.
More informationBasics of Java: Expressions & Statements. Nathaniel Osgood CMPT 858 February 15, 2011
Basics of Java: Expressions & Statements Nathaniel Osgood CMPT 858 February 15, 2011 Java as a Formal Language Java supports many constructs that serve different functions Class & Interface declarations
More informationObjectives. Chapter 8 Arrays and Strings. Objectives (cont d.) Introduction 12/14/2014. In this chapter, you will:
Objectives Chapter 8 Arrays and Strings In this chapter, you will: Learn about arrays Declare and manipulate data into arrays Learn about array index out of bounds Learn about the restrictions on array
More informationXQ: An XML Query Language Language Reference Manual
XQ: An XML Query Language Language Reference Manual Kin Ng kn2006@columbia.edu 1. Introduction XQ is a query language for XML documents. This language enables programmers to express queries in a few simple
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today Recursive Sorting Methods and their Complexity: Mergesort Conclusions on sorting algorithms and complexity Next Time:
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 informationSearching. 11. Searching
Searching In many applications it is necessary to search a list of data elements for one (or more) that matches some specific criterion. For example: - find the largest integer in a list of test scores
More informationHere we will only consider the problem of searching among the elements of an array. Intro Programming in C++
S 10 Fall 00 May 1, 006 Searching In many applications it is necessary to search a list of data elements for one (or more) that matches some specific criterion. For example: - find the largest integer
More informationCHAPTER 6 Algorithms
CHAPTER 6 Algorithms T he idea of an algorithm is of fundamental importance in computer science and discrete mathematics. Broadly speaking, an algorithm is a sequence of commands that, if followed, result
More informationPseudocode. Why use it? Because it can help you to clarify your thoughts, and design a routine properly, before you start to write any code.
Pseudocode What is pseudocode? A simplified, half-english, half-code outline of a computer program. It is sometimes given other names, such as Program Definition Language (PDL). Why use it? Because it
More informationCSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011
CSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011 Date: 01/18/2011 (Due date: 01/20/2011) Name and ID (print): CHAPTER 6 USER-DEFINED FUNCTIONS I 1. The C++ function pow has parameters.
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 informationLecture 10: Floating Point, Digital Design
Lecture 10: Floating Point, Digital Design Today s topics: FP arithmetic Intro to Boolean functions 1 Examples Final representation: (-1) S x (1 + Fraction) x 2 (Exponent Bias) Represent -0.75 ten in single
More informationComputers in Engineering COMP 208. Where s Waldo? Linear Search. Searching and Sorting Michael A. Hawker
Computers in Engineering COMP 208 Searching and Sorting Michael A. Hawker Where s Waldo? A common use for computers is to search for the whereabouts of a specific item in a list The most straightforward
More informationLISTS WITH PYTHON. José M. Garrido Department of Computer Science. May College of Computing and Software Engineering Kennesaw State University
LISTS WITH PYTHON José M. Garrido Department of Computer Science May 2015 College of Computing and Software Engineering Kennesaw State University c 2015, J. M. Garrido Lists with Python 2 Lists with Python
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Recursive list processing (part I) Version of March 24, 2013 Abstract These lecture notes are
More informationProgramming 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 informationBits, Bytes, and Precision
Bits, Bytes, and Precision Bit: Smallest amount of information in a computer. Binary: A bit holds either a 0 or 1. Series of bits make up a number. Byte: 8 bits. Single precision variable: 4 bytes (32
More information1) What is the primary purpose of template functions? 2) Suppose bag is a template class, what is the syntax for declaring a bag b of integers?
Review for Final (Chapter 6 13, 15) 6. Template functions & classes 1) What is the primary purpose of template functions? A. To allow a single function to be used with varying types of arguments B. To
More information12/30/2013 S. NALINI,AP/CSE
12/30/2013 S. NALINI,AP/CSE 1 UNIT I ITERATIVE AND RECURSIVE ALGORITHMS Iterative Algorithms: Measures of Progress and Loop Invariants-Paradigm Shift: Sequence of Actions versus Sequence of Assertions-
More information