1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
GaryK [48]
3 years ago
14

Write code for iterative merge sort algorithm. It is also known as bottom-up merge sort. There should not be any recursive call

for this approach. Include your code and screenshot of output with the answer. You can choose any programming language for this problem.

Computers and Technology
1 answer:
krek1111 [17]3 years ago
4 0

Answer:

Here is the C++ program:

#include <iostream> // for using input output functions

using namespace std; // to identify objects as cin cout

void merge(int array[], int left, int mid, int right);  

// to merge the  array into two parts i.e. from left to mid and mid+1 to right

int minimum(int a, int b) { return (a<b)? a :b; }

//to find the minimum of the 2 values

void IterativeMergeSort(int array[], int num) { //function to sort the array

  int size; //determines current size of subarrays

  int left;  //to determine the start position of left subarray

//to merge the sub arrays using bottom up approach          

  for (size=1; size<=num-1; size = 2*size)    {

      //to select start position of different subarrays of current size  

      for (left=0; left<num-1; left += 2*size)   {    

// To determine the end point of left sub array and start position of right //which is mid+1    

          int mid = minimum(left + size - 1, num-1);  

          int right = minimum(left + 2*size - 1, num-1);  

// Merge the sub arrays from left to mid and mid+1 to right

         merge(array, left, mid, right);        }    } }

 // function to merge the  array into two parts i.e. from left to mid and mid+1 //to right

void merge(int array[], int left, int mid, int right){

   int i, j, k; // variables to point to different indices of the array

   int number1 = mid - left + 1;

   int number2 =  right - mid;  

//creates two auxiliary arrays LEFT and RIGHT

   int LEFT[number1], RIGHT[number2];  

//copies this mid - left + 1 portion to LEFT array

   for (i = 0; i < number1; i++)

       LEFT[i] = array[left + i];

//copies this right - mid portion to RIGHT array

   for (j = 0; j < number2; j++)

       RIGHT[j] = array[mid + 1+ j];  

   i = 0;

   j = 0;

   k = left;

//merge the RIGHT and LEFT arrays back to array from left to right i.e //arr[left...right]

   while (i < number1 && j < number2)     {

       if (LEFT[i] <= RIGHT[j])    

/*checks if the element at i-th index of LEFT array is less than or equals to that of j-th index of RIGHT array */

{             array[k] = LEFT[i];

//if above condition is true then copies the k-th part of array[] to LEFT //temporary array

           i++;         }

       else //when the above if condition is false

       {  array[k] = RIGHT[j];

//moves k-th part of array[] to j-th position of RIGHT temporary array

           j++;         }

       k++;     }  

   while (i < number1)     {  //copies remaining elements of LEFT array

       array[k] = LEFT[i];

       i++;

       k++;     }  

   while (j < number2)     { //copies remaining elements of RIGHT array

       array[k] = RIGHT[j];

       j++;

       k++;     } }  

int main() {

   int Array[] = {9, 18, 15, 6, 8, 3}; // an array to be sorted

   int s = sizeof(Array)/sizeof(Array[0]);

//sizeof() is used to return size of array

   cout<<"Input array:  ";

   int i;

   for (i=0; i < s; i++) //to print the elements of given array

       cout<<Array[i]<<" ";

       cout<<endl;

   IterativeMergeSort(Array, s);   //calls IterativeMergeSort() function

   cout<<"Sorted array after applying Iterative Merge Sort:"<<endl;

  for (i=0; i < s; i++) //to print the elements of the sorted array

      cout<<Array[i]<<" "; }

Explanation:

The program is well explained in the comments mentioned above with each line of the code. The screenshot of the program along with its output is attached.

You might be interested in
Consider the following line of code: price= input(Please enter the price: ") What would be the next line in your code that will
hodyreva [135]

Answer:

price float(price)

Explanation:

There are four basic type of data type use in the programming to declare the

variable.

1. int:  it is used for integer values.

2. float:  it is used for decimal values.

3. char:  it is used for character values

4. Boolean: it is used for true or false.

in the question, the one option contain the data type float (price float(price)). So, it store the value in decimal.

price int(price):  it store the value in integer.

price decimal(price):  it is wrong declaration of variable. their is no data type in the programming which name is decimal.

price price(decimal):  it is wrong declaration of variable. their is no data type in the programming which name is price.

6 0
3 years ago
The human resource department at Mega Corporation is overwhelmed with a constant flood of résumés submitted through its website
ad-work [718]

Answer: The answer to the question, How might an applicant-tracking system help the department; is pretty simple. What this question really asks for is to explain the innovation of the Applicant Tracking System (commonly abbreviated as ATS). So the foremost thing to do is to describe the Applicant tracking system. Application tracking tracking systems (ATS from hereon), are digital systems that are designed to make the recruitment process for employers way less tedious than it normally should be. Imagine you had to hire for a huge company like Microsoft that could receive tens of thousands of applications everyday for a specific role. It would be pretty tedious to determine the most qualified for the role if you had to go through all the applications yourself. Even if you had a team of people, it would still be stressful and error prone because, as humans we can make mistakes and slip in the wrong file for an interview or even misplace an application or mix something up somewhere. Now imagine if you didn't have to do all that because a computer program can do it with more precision and speed than you and your whole team are capable of. That would be splendid, right? Well, you don't have to. Aanya in the question above does not have to bother the department with the tedious work. The ATS will take care of a good chunk of the work. Here's how it works. The ATS is comprised of bots that are programmed to scan through applications and arrange them in order of qualification and matching of requirements. A bot is software application that's preset to run programs automatically, usually over the internet. So when people apply on Mega Corporation's platform, the applications are sent through to the scanning of the ATS. Now the requirements for the job role will be filled in by the department ATS so it knows what it's looking out for. For example, if one of the requirements for the job is a Master's degree in Psychology, applications without Master's degrees will be grouped separately from those that have. Same thing for other criteria like years of experience, Age, etcetera. The ATS receives all these applications and groups them such that, at the deadline of the application process, the ATS would have screened a good portion of the applicants and only the most qualified would be left for the next stage of screening. This is how the Applicant Tracking System would help the Human Resource department at Mega Corporation.

7 0
4 years ago
Cobbling together elements from the previous definition and whittling away the unnecessary bits leaves us with the following def
pentagon [3]

Answer:

This is not plagiarism

Explanation:

The student has properly referenced the original source material, therefore, it is not plagiarism. Also, it is sufficient to just reference the attached source material author. Although it is implied that several other authors' material has been used in the source material, there is no need for the student to reference the other authors too.

3 0
3 years ago
The computer which contains. is called microprocessor<br><br>​
sergiy2304 [10]
The CPU (Central Processing Unit) or what others call “Processor” which are created by manufacturers like AMD (Advance Micro Devices) and Intel
3 0
3 years ago
Choose all statements that identify the benefits of programming design.
Lubov Fominskaja [6]

Answer:

yes

Explanation:

it provides a design approach to a specific type of problem

4 0
3 years ago
Read 2 more answers
Other questions:
  • Computers have become easier to use and more powerful over time.
    12·2 answers
  • Percy is a lighting technician in a film production. For a shot, the chief lighting technician instructs Percy to get the kind o
    15·1 answer
  • The first step in the five-step process for problem solving is to ____. take action complete the task understand the task or nee
    10·2 answers
  • A teacher determines student percentages in a course as the points a student earns divided by the total points available in the
    9·1 answer
  • Why concurrency control is needed in transaction.
    5·1 answer
  • Redundancy can be implemented at a number of points throughout the security architecture, such as in ________. Group of answer c
    12·1 answer
  • Explain the process of a for loop and how it is used in code
    9·1 answer
  • Please tell fast plzzzzzz.​
    10·1 answer
  • True or false: Concurrent validation is more time consuming to measure than predictive validation because it involves a wait per
    13·1 answer
  • How are charts useful in Excel worksheets? Name three types of charts available in Excel and describe with an example how each m
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!