
29.02.2008, 16:41
|
|
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме: 3578578
Репутация:
275
|
|
Код:
#include <iostream>
using namespace std;
void sort(int*,int*, int*, int, int);
void print(const int*, int);
void input(int*, int);
int main()
{
int sizeN;
int sizeM;
cout << "Input sizeN and sizeM" << endl;
cin >> sizeN >> sizeM;
int* a = new int[sizeN];
int* b = new int[sizeM];
int* c = new int[sizeN+sizeM];
if( ( a && b && c ) == 0 ) {
cerr << "Not enought memory" << endl;
return 1;
}
cout << "1st array : " << endl;
input(a, sizeN);
cout << "2d array : " << endl;
input(b, sizeM);
sort(a, b, c, sizeN, sizeM);
cout << "New array : " << endl;
print(c, sizeN + sizeM);
delete [] a;
delete [] b;
delete [] c;
return 0;
}
void print(const int *iptr, int size)
{
for(int i=0; i < size; ++i)
cout << iptr[i] << '\t';
cout << endl;
}
void input(int *iptr, int size)
{
cout << "Input " << size << " elements : " << endl;
for(int i=0; i < size; ++i)
cin >> iptr[i];
}
void sort( int* a, int* b, int* c, int size_a, int size_b)
{
int i=0, j=0, k=0;
for( ; i < size_a; ++i, ++k ) {
for(; j < size_b && b[j] > a[i]; ++j,++k )
c[k] = b[j];
c[k] = a[i];
}
for( ; j < size_b; ++j, ++k )
c[k] = b[j];
}
Последний раз редактировалось Forcer; 01.03.2008 в 00:41..
|
|
|