Untitled
unknown
plain_text
4 years ago
2.1 kB
9
Indexable
//10. Intercalar dos vectores A y B clasificados ascendentemente de tamaño n y m respectivamente en uno solo de tal forma que el resultado sea un vector clasificado.
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
void leerVector(float vec[], int n)
{
int i;
for (i = 0; i < n; i++)
{
cout << "Vec[" << i << "] : ";
cin >> vec[i];
}
}
void imprimaVector(float vec[], int n)
{
int i;
cout << endl
<< "El vector es --->>" << endl;
for (i = 0; i < n; i++)
{
cout << vec[i] << " ";
}
}
void Ordenasc(float vec[], int n)
{
float aux;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (vec[i] < vec[j])
{
aux = vec[i];
vec[i] = vec[j];
vec[j] = aux;
}
}
}
}
void Intercalar(float vec[], float vec2[], float vec3[], int n, int m)
{
int i = 0, j = 0, k = 0;
while (i < n && j < m)
{
if (vec[i] <= vec2[j])
{
vec3[k] = vec[i];
i++;
}
else
{
vec3[k] = vec2[j];
j++;
}
k++;
}
while (i < n)
{
vec3[k] = vec[i];
i++;
k++;
}
while (j < m)
{
vec3[k] = vec2[j];
j++;
k++;
}
}
int main()
{
int n = 0, m = 0, mn = 100;
float vec[100], vec2[100], vec3[100];
cout << "\nTamaño del vector a: ";
cin >> n;
leerVector(vec, n);
imprimaVector(vec, n);
Ordenasc(vec, n);
cout << "El vector ordenado seria: " << endl;
imprimaVector(vec, n);
cout << "\nTamaño del vector b: ";
cin >> m;
leerVector(vec2, m);
imprimaVector(vec2, m);
Ordenasc(vec2, m);
cout << "El vector ordenado seria: " << endl;
imprimaVector(vec2, m);
Intercalar(vec, vec2, vec3, n, m);
mn = n + m;
imprimaVector(vec3, mn);
return 0;
}
Editor is loading...