
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
expand_more
expand_more
format_list_bulleted
Question
Problem Statement: Consider an input string PAL of letters ‘P’, ‘A’, and ‘L’. This string, which is given by the user, ends with ‘#’. It should be stored in a table (or array), called PAL_TAB. The number of each of these letters is unknown. We have a function, called SWAP(PAL, i, j), which places the ith letter in the jth entry of string PAL and the jth letter in the ith entry of PAL. Note that SWAP(PAL, i, j) is defined for all integers i and j between 0 and length(PAL) – 1, where length(PAL) is the number of letters of PAL.
1. Using our algorithmic language, write an algorithm , called Sort_PAL, which sorts the letters in the array PAL_TAB in a way that all P’s appear first, followed by all A’s, and followed by all L’s. The algorithm Sort_PAL should have one parameter: The array PAL_TAB. Also, your solution is correct only if the four constraints below are satisfied:
- Constraint 1: Each letter (‘A’, ‘L’, or ‘P’) is evaluated only once.
- Constraint 2: The function SWAP(PAL, i, j) is used only when it is necessary.
- Constraint 3: No extra space can be used by the algorithm Sort_PAL. In other words, only the array PAL_TAB can be used to sort the ‘A’, ‘L’, or ‘P’.
- Constraint 4: You cannot count the number of each letter ‘A’, ‘L’, or ‘P’.
2. Show that the algorithm Sort_PAL is correct using an informal proof (i.e., discussion).
3. Give a program corresponding to Sort_PAL using your favorite programming language.
Deliverables: Students may choose to work in team of up to two members. You should turn in a report explaining all the design decisions and your code should be commented appropriately for readability and understanding. More precisely, a report should include the problem statement, proposed approach/solution along with a detailed discussion, algorithm (high-level description of all the design parts along with some details when necessary), commented code, tests (input given by the user and output generated by your program execution), and lessons learned from such an implementation experience.

Transcribed Image Text:Problem Statement: Consider an input string PAL of letters 'P', 'A', and 'L'. This string, which
is given by the user, ends with '#'. It should be stored in a table (or array), called PAL_TAB. The
number of each of these letters is unknown. We have a function, called SWAP(PAL, i, j), which
places the ith letter in the jth entry of string PAL and the jth letter in the ith entry of PAL. Note that
SWAP(PAL, i, j) is defined for all integers i and j between 0 and length(PAL) 1, where
length(PAL) is the number of letters of PAL.
1. Using our algorithmic language, write an algorithm, called Sort_PAL, which sorts the
letters in the array PAL_TAB in a way that all P's appear first, followed by all A's, and
followed by all L's. The algorithm Sort_PAL should have one parameter: The array
PAL_TAB. Also, your solution is correct only if the four constraints below are satisfied:
- Constraint 1: Each letter ('A', 'L', or 'P') is evaluated only once.
- Constraint 2: The function SWAP(PAL, i, j) is used only when it is necessary.
- Constraint 3: No extra space can be used by the algorithm Sort_PAL. In other words,
only the array PAL_TAB can be used to sort the 'A', 'L', or 'P'.
- Constraint 4: You cannot count the number of each letter 'A', 'L', or 'P'.
2. Show that the algorithm Sort_PAL is correct using an informal proof (i.e., discussion).
3. Give a program corresponding to Sort_PAL using your favorite programming language.
Deliverables: Students may choose to work in team of up to two members. You should turn in a
report explaining all the design decisions and your code should be commented appropriately for
readability and understanding. More precisely, a report should include the problem statement,
proposed approach/solution along with a detailed discussion, algorithm (high-level description of
all the design parts along with some details when necessary), commented code, tests (input given
by the user and output generated by your program execution), and lessons learned from such an
implementation experience.
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution
Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 2 images

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- The function list_combination takes two lists as arguments, list_one and list_two. Return from the function the combination of both lists - that is, a single list such that it alternately takes elements from both lists starting from list_one. You can assume that both list_one and list_two will be of equal lengths. As an example if list_one = [1,3,5] and if list_two = [2,4,6]. The function must return [1,2,3,4,5,6].arrow_forwardWrite a program with two functions: addToList(food): printList(food): Print the entire list food is used to pass a list to the function. Ask the user to input another food item. The main program will create a list: myList["apple", "oralge", "grapes] Call the function printList, using myList Call the function addToList, using myList Call the function printList, using myListarrow_forwardUsing c++ Contact list: Binary Search A contact list is a place where you can store a specific contact with other associated information such as a phone number, email address, birthday, etc. Write a program that first takes as input an integer N that represents the number of word pairs in the list to follow. Word pairs consist of a name and a phone number (both strings). That list is followed by a name, and your program should output the phone number associated with that name. Define and call the following function. The return value of FindContact is the index of the contact with the provided contact name. If the name is not found, the function should return -1 This function should use binary search. Modify the algorithm to output the count of how many comparisons using == with the contactName were performed during the search, before it returns the index (or -1). int FindContact(ContactInfo contacts[], int size, string contactName) Ex: If the input is: 3 Frank 867-5309 Joe…arrow_forward
- PYTHON Complete the function below, which takes two arguments: data: a list of tweets search_words: a list of search phrases The function should, for each tweet in data, check whether that tweet uses any of the words in the list search_words. If it does, we keep the tweet. If it does not, we ignore the tweet. data = ['ZOOM earnings for Q1 are up 5%', 'Subscriptions at ZOOM have risen to all-time highs, boosting sales', "Got a new Mazda, ZOOM ZOOM Y'ALL!", 'I hate getting up at 8am FOR A STUPID ZOOM MEETING', 'ZOOM execs hint at a decline in earnings following a capital expansion program'] Hint: Consider the example_function below. It takes a list of numbers in numbers and keeps only those that appear in search_numbers. def example_function(numbers, search_numbers): keep = [] for number in numbers: if number in search_numbers(): keep.append(number) return keep def search_words(data, search_words):arrow_forwardImagine that you are a biomedical engineer analyzing DNA sequences. You have numerical measurements from two different measurement sources, m1 and m2, both of which are arrays. Write a function named dna that takes these two arrays as inputs. It should return a character array string of nucleotides (represented by the letters A, C, G and T). For a given index, i, the nucleotide in the string is: - ‘A’ if m1(i) >= 0 and m2(i) >= 0 - ‘C’ if m1(i) < 0 and m2(i) >= 0 - ‘G’ if m1(i) >= 0 and m2(i) < 0 - ‘T’ if m1(i) < 0 and m2(i) < 0 code to call the function m1 = [-2 -3 2.5 0.3]; m2 = [1.1 2.1 -0.8 0.1]; sequecne = dna(m1,m2); function dna Please use MATLABarrow_forwardProblem 3: Write a function that takes in a string as input and returns a list of the unique characters used in the string. Punctuation should not be counted as a unique character. For our purposes you may consider the following characters as punctuation:.,;:?!"'- Your list should return all letters as lower case and sorted. So for example if the input is days are here again! 'your function should return the list ['a''d','e','g','h','i','n','p','r','s','y'l Нарру In [ ]: 1 # write your code here 2 # you may add more cells as neededarrow_forward
- a. Problem 1. Create an array of 30 random numbers that range between 1 and 100. Then, write a function that will receive a number from the user and determine if that number exists in the array or not. For instance, assume the array is: [2, 93, 14, 89, 12, 3, 81, 15, 14, 89, 52, 96, 71, 82, 5, 2, 41, 23, 52, 59, 44, 44, 88, 39, 49, 50, 97, 45, 48, 36] Now, assume the user enters 89, the program should output true. But, if the user enters 77, the program should output false. Approach: We will be implementing this method in two different ways. Both will be recursive. First, implement a method called findA (x,A), where x is the number we are looking for and A is an array. In the body of the function, compare x with the FIRST item that is in the array. If this first item is equal to X, return true. If not, remove the first item from A and call findA (x,A) on the revised list. If you call find on an empty list, you will want to return false. Writing any explicit loop in your code results a…arrow_forwardI need to write a program named Search.java that uses a function called search_string to check whether a string exists in the array or not. 1- The array of strings is iterated using a for loop and the value at every index is compared with the value to be searched in the array. 2- A boolean variable is set if any array value matches with the string. 3- At the end of the loop, this boolean variable is checked to determine if the array contains the string. It may be necessary to import java.util.Arrays then use Arrays.toString, String equals(). Output should be as picture showsarrow_forwardWrite a function that accepts an int array and the array’s size as arguments. The function should create a new array that is twice the size of the argument array. The function should copy the contents of the argument array to the new array, and initialize the unused elements of the second array with 0. The function should return a pointer to the new array. Demonstrate the function by using it in a main program that reads an integer N (that is not more than 50) from standard input and then reads N integers from a file named data into an array. The program then passes the array to your array expander function, and displays the values of the new expanded array, one value per line. You may assume that the file data has at least N values. There are no prompts for the integer and no labels for the expanded reversed array that is printed out. If the integer read in from standard input exceeds 50 or is less than 0 the program terminates silently.arrow_forward
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education