Com invertir una matriu en C ++, Python i JavaScript

Com invertir una matriu en C ++, Python i JavaScript

Una matriu és una col·lecció d’elements emmagatzemats en ubicacions de memòria contigües. La inversió d'una matriu és una de les operacions més habituals que es realitzen en una matriu. En aquest article, aprendreu a escriure la vostra pròpia implementació de reversió d'una matriu mitjançant enfocaments iteratius i recursius.





Enfocament iteratiu per invertir una matriu

Plantejament del problema

Se us dóna una matriu arr . Cal invertir els elements de la matriu i, a continuació, imprimir la matriu invertida. Cal implementar aquesta solució mitjançant bucles.





Exemple 1 : Sigui arr = [45, 12, 67, 63, 9, 23, 74]





Invertit arr = [74, 23, 9, 63, 67, 12, 45]

com millorar la velocitat de descàrrega de vapor

Així, la sortida és: 74 23 9 63 67 12 45.



Exemple 2 : Sigui arr = [1, 2, 3, 4, 5, 6, 7, 8]

Invertit arr = [8, 7, 6, 5, 4, 3, 2, 1]





Així, la sortida és: 8 7 6 5 4 3 2 1.

Enfocament per invertir una matriu mitjançant bucles

Podeu invertir els elements d’una matriu mitjançant bucles seguint l’enfocament següent:





  1. Inicialitzeu les variables d'índex 'i' i 'j' de manera que assenyalin el primer (0) i l'últim (sizeOfArray - 1) índex de la matriu respectivament.
  2. En un bucle, canvieu l'element a l'índex i per l'element a l'índex j.
  3. Incrementeu el valor d’i per 1 i disminuïu el valor de i per 1.
  4. Executeu el bucle fins que i

Programa C ++ per invertir una matriu mitjançant bucles

A continuació es mostra el programa C ++ per invertir una matriu mitjançant bucles:

// C++ program to reverse the elements of an array using loops
#include
using namespace std;

void reverseArr(int arr[], int size)
{
for(int i=0, j=size-1; i {
swap(arr[i], arr[j]);
}
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i {
cout << arr[i] << ' ';
}
cout << endl;
}
// Driver Code
int main()
{
int arr[] = {45, 12, 67, 63, 9, 23, 74};
int size = sizeof(arr)/sizeof(arr[0]);
// Printing the original array
cout << 'Original Array: ' << endl;
printArrayElements(arr, size);
// Reversing the array
reverseArr(arr, size);
// Printing the reversed array
cout << 'Reversed array: ' << endl;
printArrayElements(arr, size);
return 0;
}

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Relacionat: Com invertir una cadena en C ++, Python i JavaScript

Programa Python per invertir una matriu mitjançant bucles

A continuació es mostra el programa Python per invertir una matriu mitjançant bucles:

# Python program to reverse the elements of a list using loops
def reverseList(arr, size):
i = 0
j = size-1
while i arr[i], arr[j] = arr[j], arr[i]
i = i + 1
j = j - 1
def printListElements(arr, size):
for i in range(size):
print(arr[i], end=' ')
print()
# Driver Code
arr = [45, 12, 67, 63, 9, 23, 74]
size = len(arr)
# Printing the original array
print('Original Array:')
printListElements(arr, size)
# Reversing the array
reverseList(arr, size)
# Printing the reversed array
print('Reversed Array:')
printListElements(arr, size)

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Programa JavaScript per invertir una matriu mitjançant bucles

A continuació es mostra el programa JavaScript per invertir una matriu mitjançant bucles:

Relacionat: Introducció a l'algorisme de classificació de combinació

// JavaScript program to reverse the elements of an array using loops
function reverseArr(arr, size) {
for(let i=0, j=size-1; i<(size)/2; i++, j--) {
[arr[i], arr[j]] = [arr[j], arr[i]];
}
}
function printArrayElements(arr, size) {
for(let i=0; i document.write(arr[i] + ' ');
}
document.write('
');
}
// Driver Code
var arr = [45, 12, 67, 63, 9, 23, 74];
var size = arr.length;
// Printing the original array
document.write('Original Array: ' + '
');
printArrayElements(arr, size);
// Reversing the array
reverseArr(arr, size);
// Printing the reversed array
document.write('Reversed Array: ' + '
');
printArrayElements(arr, size);

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Enfocament recursiu per invertir una matriu

Plantejament del problema

Se us dóna una matriu arr . Cal invertir els elements de la matriu i, a continuació, imprimir la matriu invertida. Cal implementar aquesta solució mitjançant recursivitat.

Exemple 1 : Sigui arr = [45, 12, 67, 63, 9, 23, 74]

Invertit arr = [74, 23, 9, 63, 67, 12, 45]

Així, la sortida és 74 23 9 63 67 12 45.

Exemple 2 : Sigui arr = [1, 2, 3, 4, 5, 6, 7, 8]

Invertit arr = [8, 7, 6, 5, 4, 3, 2, 1]

Així, la sortida és 8 7 6 5 4 3 2 1.

Enfocament per invertir una matriu mitjançant la recursió

Podeu invertir els elements d’una matriu mitjançant la recursió seguint l’enfocament següent:

  1. Inicialitzar variables d'índex començar i final de manera que assenyalen el primer (0) i l'últim (sizeOfArray - 1) índex de la matriu respectivament.
  2. Canvieu l'element a l'índex començar amb l'element a l'índex final .
  3. Anomeneu recursivament la funció inversa. Als paràmetres de la funció inversa, incrementeu el valor de començar per 1 i disminuir el valor de final per 1.
  4. Atureu la recursió quan el valor del fitxer començar variable és superior o igual al valor de la variable final variable.

Programa C ++ per invertir una matriu mitjançant la recursió

A continuació es mostra el programa C ++ per invertir una matriu mitjançant la recursió:

// C++ program to reverse an array using recursion
#include
using namespace std;
void reverseArr(int arr[], int start, int end)
{
if (start >= end)
{
return;
}
swap(arr[start], arr[end]);
reverseArr(arr, start+1, end-1);
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i {
cout << arr[i] << ' ';
}
cout << endl;
}
// Driver Code
int main()
{
int arr[] = {45, 12, 67, 63, 9, 23, 74};
int size = sizeof(arr)/sizeof(arr[0]);
// Printing the original array
cout << 'Original Array: ' << endl;
printArrayElements(arr, size);
// Reversing the array
reverseArr(arr, 0, size-1);
// Printing the reversed array
cout << 'Reversed array: ' << endl;
printArrayElements(arr, size);
return 0;
}

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Programa Python per invertir una matriu mitjançant la recursió

A continuació es mostra el programa Python per invertir una matriu mitjançant la recursió:

com es pot saber si el vostre Facebook ha estat piratejat el 2018

Relacionat: Programació dinàmica: exemples, problemes comuns i solucions

# Python program to reverse an array using recursion
def reverseList(arr, start, end):
if start >= end:
return
arr[start], arr[end] = arr[end], arr[start]
reverseList(arr, start+1, end-1)
def printListElements(arr, size):
for i in range(size):
print(arr[i], end=' ')
print()
# Driver Code
arr = [45, 12, 67, 63, 9, 23, 74]
size = len(arr)
# Printing the original array
print('Original Array:')
printListElements(arr, size)
# Reversing the array
reverseList(arr, 0, size-1)
# Printing the reversed array
print('Reversed Array:')
printListElements(arr, size)

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Programa JavaScript per invertir una matriu mitjançant la recursió

A continuació es mostra el programa JavaScript per invertir una matriu mitjançant la recursió:

Relacionat: Com trobar la suma de nombres naturals mitjançant la recursió

// JavaScript program to reverse an array using recursion
function reverseArr(arr, start, end)
{
if (start >= end)
{
return;
}
[arr[start], arr[end]] = [arr[end], arr[start]];
reverseArr(arr, start+1, end-1);
}
function printArrayElements(arr, size)
{
for(let i=0; i {
document.write(arr[i] + ' ');
}
document.write('
');
}
// Driver Code
var arr = [45, 12, 67, 63, 9, 23, 74];
let size = arr.length;
// Printing the original array
document.write('Original Array: ' + '
');
printArrayElements(arr, size);
// Reversing the array
reverseArr(arr, 0, size-1);
// Printing the reversed array
document.write('Reversed Array: ' + '
');
printArrayElements(arr, size);

Sortida:

Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45

Utilitzeu la recursió per resoldre problemes

Una funció recursiva és una funció que s'anomena a si mateixa. En recursivitat, un problema es resol dividint els problemes en versions més petites i senzilles d’ells mateixos.

Hi ha molts avantatges de la recursió: el codi recursiu és més curt que un codi iteratiu, es pot utilitzar per resoldre problemes que són recursius de forma natural, es pot utilitzar en avaluacions d’infixos, prefixos, postfixos, la recursió redueix el temps necessari per escriure i codi de depuració, etc.

La recursió és el tema preferit dels entrevistadors en les entrevistes tècniques. Heu de saber sobre la recursivitat i com utilitzar-la mentre escriviu codi per ser el programador més eficient que pugueu ser.

Compartir Compartir Tweet Correu electrònic Què és la recursivitat i com s’utilitza?

Apreneu els conceptes bàsics de la recursivitat, l’eina essencial, però una mica increïble per als programadors.

Llegiu a continuació
Temes relacionats
  • Programació
  • JavaScript
  • Python
  • Tutorials de codificació
Sobre l'autor Yuvraj Chandra(60 articles publicats)

Yuvraj és estudiant universitari en ciències de la computació a la Universitat de Delhi, Índia. És un apassionat del desenvolupament web Full Stack. Quan no escriu, explora la profunditat de les diferents tecnologies.

Més de Yuvraj Chandra

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us