It gives Array type int m2 not assignable in Merge sort sorting function file. And also it gives expression must contain a constant value error.How can i fix that errors?
FOR C++
In this assignment, we are going to implement a couple of sorting algorithms and test their performances. So the idea is as follows:
You should write a program to sort an array. For this purpose, you will implement two sorting algorithms: Insertion Sort and Merge Sort. For each
Then go ahead and run your application. The output should show us how many comparisons it made for each algorithm for 1000 and 10000 elements.
//header file
#include<iostream>
#include<time.h>
//using namespace
using namespace std;
// Insertion sort sorting function it will take array and its size an argument
void insertionSort(int nums[], int m, int& comparisonsCount)
{
int j, val, i;
for (j = 1; j < m; j++)
{
val = nums[j];
i = j - 1;
comparisonsCount++;
while (i >= 0 && nums[i] > val)
{
comparisonsCount++;
nums[i + 1] = nums[i];
i = i - 1;
}
nums[i + 1] = val;
}
}
// Merge sort sorting function
void merge(int nums[], int left, int middle, int right,int& comparisonsCount)
{
int m1 = middle - left + 1;
int m2 = right - middle;
int L[m1], R[m2];
for (int j = 0; j < m1; j++)
L[j] = nums[left + j];
for (int i = 0; i < m2; i++)
R[i] = nums[middle + 1 + i];
int j = 0;
int i = 0;
int s = left;
while (j < m1 && i < m2) {
if (L[j] <= R[i]) {
comparisonsCount++;
nums[s] = L[j];
j++;
}
else {
nums[s] = R[i];
i++;
}
s++;
}
while (j < m1) {
nums[s] = L[j];
j++;
s++;
}
while (i < m2) {
nums[s] = R[i];
i++;
s++;
}
}
void mergeSort(int nums[],int left,int right, int& comparisonsCount){
if(left>=right){
return;//returns recursively
}
int middle =left+ (right-left)/2;
mergeSort(nums,left,middle,comparisonsCount);
mergeSort(nums,middle+1,right,comparisonsCount);
merge(nums,left,middle,right,comparisonsCount);
}
//main function
int main()
{
srand(time(0));
int arr_1[1000]; int copy_arr1[1000];
int arr_2[10000]; int copy_arr2[10000];
for(int j=0; j<1000; j++)
{
arr_1[j]=rand();
copy_arr1[j]=arr_1[j];
}
int count_insertion=0;
int count_merge=0;
insertionSort(arr_1,1000,count_insertion);
mergeSort(copy_arr1,0,1000-1,count_merge);
cout<<"For 1000 length array: \n";
cout<<"Comparision made for insertion sort: "<<count_insertion;
cout<<"\nComparision made of merge sort : "<<count_merge;
for(int j=0; j<10000; j++)
{
arr_2[j]=rand();
copy_arr2[j]=arr_1[j];
}
count_insertion=0;
count_merge=0;
insertionSort(arr_2,10000,count_insertion);
mergeSort(copy_arr2,0,10000-1,count_merge);
cout<<"\n\nFor 10000 length array: \n";
cout<<"Comparision made for insertion sort: "<<count_insertion;
cout<<"\nComparision made of merge sort : "<<count_merge;
}
It gives Array type int m2 not assignable in Merge sort sorting function file.
And also it gives expression must contain a constant value error.How can i fix that errors?
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Computer Networking: A Top-Down Approach (7th Edi…](https://www.bartleby.com/isbn_cover_images/9780133594140/9780133594140_smallCoverImage.gif)
![Computer Organization and Design MIPS Edition, Fi…](https://www.bartleby.com/isbn_cover_images/9780124077263/9780124077263_smallCoverImage.gif)
![Network+ Guide to Networks (MindTap Course List)](https://www.bartleby.com/isbn_cover_images/9781337569330/9781337569330_smallCoverImage.gif)
![Computer Networking: A Top-Down Approach (7th Edi…](https://www.bartleby.com/isbn_cover_images/9780133594140/9780133594140_smallCoverImage.gif)
![Computer Organization and Design MIPS Edition, Fi…](https://www.bartleby.com/isbn_cover_images/9780124077263/9780124077263_smallCoverImage.gif)
![Network+ Guide to Networks (MindTap Course List)](https://www.bartleby.com/isbn_cover_images/9781337569330/9781337569330_smallCoverImage.gif)
![Concepts of Database Management](https://www.bartleby.com/isbn_cover_images/9781337093422/9781337093422_smallCoverImage.gif)
![Prelude to Programming](https://www.bartleby.com/isbn_cover_images/9780133750423/9780133750423_smallCoverImage.jpg)
![Sc Business Data Communications and Networking, T…](https://www.bartleby.com/isbn_cover_images/9781119368830/9781119368830_smallCoverImage.gif)