Write a program that allows the user to sort using the Heap Sort and Bin/Radix Sort. The program should be able to read in data from a binary file. The first element of the binary file will be used to tell how many elements to read in. Once all the data has been read in, the program should sort the data. The user should be able to choose which algorithm to use to sort the data. The program should print the time before and after the sort. The last part of the program should prompt the user for a lower and upper bound. These two values should then be used to decide how much and which part of the array will be display.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
Write a program that allows the user to sort using the  Heap Sort and Bin/Radix Sort. The program should be able to read in data from a binary file.  The first element of the binary file will be used to tell how many elements to read in.  Once all the data has been read in, the program should sort the data.  The user should be able to choose which algorithm to use to sort the data.  The program should print the time before and after the sort.  The last part of the program should prompt the user for a lower and upper bound.  These two values should then be used to decide how much and which part of the array will be display.
 
 
Note: The binary files may have duplicate numbers in them. Make sure your sorts are able to handle these cases.
 
 
 
Reminder: The implementation of your algorithms must follow the format we cover in class. Bin sort must be constructed yourself using pointers. No vectors, queues, etc..
Expert Solution
Step 1: Algorithm:

Heap Sort Algorithm:

Heap Sort is a comparison-based sorting algorithm that uses a binary heap data structure to sort elements in an array.

  1. Build a max-heap from the array.
    • Starting from the middle of the array (index n/2 - 1), perform a heapify operation on each element in reverse order, i.e., from right to left.
  2. Extract elements from the max-heap and place them at the end of the array.
    • Swap the root of the heap (the maximum element) with the last element in the heap.
    • Reduce the size of the heap by 1.
    • Perform a heapify operation on the root to maintain the max-heap property.
    • Repeat these steps until the heap is empty.
  3. The array is now sorted in ascending order.

Radix Sort Algorithm:

Radix Sort is a non-comparative sorting algorithm that works on integers by processing individual digits.

  1. Find the maximum element in the array to determine the number of digits in it.
  2. Initialize a bucket for each digit (0-9).
  3. Starting from the least significant digit (rightmost), perform the following steps for each digit position:
    • Distribute: Place each element in the appropriate bucket based on the current digit.
    • Collect: Collect the elements from the buckets back into the original array in the order they were placed.
    • Repeat these steps for each digit position, moving from right to left.
  4. After processing all digit positions, the array is sorted in ascending order.
steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Quicksort
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
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education