Hello people I have only a little problem with this task.
I think I have solved the rask right but I am not sure perhaps all experts here can help me:
Task:
It is a function to be created, which by an array a with the method "Sort
Mix "ascending.
Function using recursion: sortMerge (n, a)
Here the procedure is as follows:
If an item contains a maximum of one is finished (already sorted)
otherwise
Create 2 matching arrays b and c
Train 2 halves of the array and save it in a new array b and c
Note:
a new array of names h and m elements can be generated as follows:
double * h = new double [m];
The type is double; other similar types;
m is an expression / a variable of type int
With delete [] h, you can delete it again.
Sort b and c with SortMerge
Mix b and c with the function of internship 9 and store the result in a
Delete b and c.
Proceed to creating a suitable program to test the function.
Example of a step in the algorithm:
Sort is a: 11 2 9 7 8 3 2 with 7 elements.
In 2 parts disassemble and store in b and c: b: 11 2 9 c: 7 8 3 2
The 2 parts with SortMerge by: b: 2 9 11 c: 2 3 7 8
The 2 parts to a mix a: 2 2 3 7 8 9 11
My programm:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
#include <iostream>
using namespace std;
void sortMerge(int n, int *a){
void merge(int *a,int p,int *b,int q, int *c,int n);
if (n>1) {
int *b = new int[n/2];
int *c = new int[(n + 1)/2];
int i;
for(i=0; i < n/2; i++) {
b[i] = a[i];
}
for(i=n/2; i < n; i++) {
c[i - n/2] = a[i];
}
sortMerge(n/2, b);
sortMerge(n-n/2, c);
merge(b,n/2,c,n-n/2,a,n);
delete b;
delete c;
}
}
void merge(int *b,int p,int *c,int q, int *a,int n)
{
int i=0,j=0,k=0;
while(i<p && j<q)
{
if(b[i]<=c[j]) {
a[k]=b[i];
i++;
} else {
a[k]=c[j];
j++;
}
k++;
}
if(i==p) {
while(j<q) {
a[k]=c[j];
j++;
k++;
}
} else {
while(i<p) {
a[k]=b[i];
i++;
k++;
}
}
}
|
When I try to run the programm , it shows an error.
undefined reference to winmain.
Can somebody please tell me what I am doing wrong and perhaps help me.