Introducción
En este laboratorio, aprenderá a invertir un arreglo en el lenguaje de programación C++ utilizando diferentes técnicas. La inversión de un arreglo significa cambiar el orden de un arreglo donde el último elemento del arreglo se convierte en el primero y el primer elemento se convierte en el último. Este laboratorio le enseñará a realizar la inversión de un arreglo utilizando diferentes métodos, incluyendo bucles for, funciones integradas, punteros, recursión y funciones definidas por el usuario.
Crea un nuevo archivo de C++
Crea un nuevo archivo de C++ llamado reverse_array.cpp en el directorio ~/project ejecutando el siguiente comando:
touch ~/project/reverse_array.cpp
Invertir un arreglo utilizando un bucle for
El siguiente código demuestra cómo invertir un arreglo utilizando un bucle for:
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Arreglo Original: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Arreglo Invertido: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Para compilar y ejecutar el código, utiliza los siguientes comandos:
g++ reverse_array.cpp -o reverse_array
./reverse_array
Invertir un arreglo utilizando una función integrada
El siguiente código demuestra cómo invertir un arreglo utilizando una función integrada de C++:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Arreglo Original: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverse(arr,arr+size);
cout<<"Arreglo Invertido: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Para compilar y ejecutar el código, utiliza los siguientes comandos:
g++ reverse_array.cpp -o reverse_array
./reverse_array
Invertir un arreglo utilizando una función definida por el usuario
El siguiente código demuestra cómo definir una función definida por el usuario para invertir un arreglo:
#include <iostream>
using namespace std;
void reverseArray(int arr[], int size){
for(int i=0;i<size/2;i++){
int temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
int main(){
int arr[]={1,2,3,4,5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Arreglo Original: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,size);
cout<<"Arreglo Invertido: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Para compilar y ejecutar el código, utiliza los siguientes comandos:
g++ reverse_array.cpp -o reverse_array
./reverse_array
Invertir un arreglo utilizando punteros
El siguiente código demuestra cómo invertir un arreglo utilizando punteros:
#include <iostream>
using namespace std;
void reverseArray(int *arr, int size){
int *first = arr, *last = arr + size - 1;
while(first < last){
int temp = *first;
*first = *last;
*last = temp;
first++;
last--;
}
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Arreglo Original: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr, size);
cout<<"Arreglo Invertido: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Para compilar y ejecutar el código, utiliza los siguientes comandos:
g++ reverse_array.cpp -o reverse_array
./reverse_array
Invertir un arreglo utilizando recursión
El siguiente código demuestra cómo invertir un arreglo utilizando recursión:
#include <iostream>
using namespace std;
void reverseArray(int arr[], int start, int end){
if(start >= end)
return;
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverseArray(arr,start+1,end-1);
}
int main(){
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
cout<<"Arreglo Original: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
reverseArray(arr,0,size-1);
cout<<"Arreglo Invertido: ";
for(int i=0;i<size;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
Para compilar y ejecutar el código, utiliza los siguientes comandos:
g++ reverse_array.cpp -o reverse_array
./reverse_array
Resumen
¡Felicidades! Has completado el laboratorio de Invertir un Arreglo en O(n). Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



