Cum se inversează o matrice în C ++, Python și JavaScript

Cum se inversează o matrice în C ++, Python și JavaScript

O matrice este o colecție de articole stocate în locații de memorie contigue. Inversarea unui tablou este una dintre cele mai comune operații care trebuie efectuate pe un tablou. În acest articol, veți învăța cum să scrieți propria implementare a inversării unei matrice utilizând abordări iterative și recursive.



Abordare iterativă pentru a inversa o matrice

Declarație problemă

Ți se oferă o serie arr . Trebuie să inversați elementele matricei, apoi să imprimați matricea inversată. Trebuie să implementați această soluție folosind bucle.

Exemplul 1 : Fie arr = [45, 12, 67, 63, 9, 23, 74]





Invers invers = [74, 23, 9, 63, 67, 12, 45]

cum lasi un text de grup pe iPhone

Astfel, ieșirea este: 74 23 9 63 67 12 45.



Exemplul 2 : Fie arr = [1, 2, 3, 4, 5, 6, 7, 8]

Invers invers = [8, 7, 6, 5, 4, 3, 2, 1]

Astfel, ieșirea este: 8 7 6 5 4 3 2 1.

Abordare pentru a inversa o matrice folosind bucle

Puteți inversa elementele unui tablou folosind bucle urmând abordarea de mai jos:

  1. Inițializați variabilele index „i” și „j” astfel încât să indice primul (0) și ultimul (sizeOfArray - 1) index al matricei.
  2. Într-o buclă, schimbați elementul la indexul i cu elementul la indexul j.
  3. Măriți valoarea lui i cu 1 și micșorați valoarea lui j cu 1.
  4. Rulați bucla până când i

Program C ++ pentru a inversa o matrice folosind bucle

Mai jos este programul C ++ pentru a inversa o matrice folosind bucle:

// 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;
}

Ieșire:

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

Legate de: Cum se inversează un șir în C ++, Python și JavaScript

Program Python pentru a inversa o matrice folosind bucle

Mai jos este programul Python pentru a inversa o matrice folosind bucle:

# 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)

Ieșire:

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

Program JavaScript pentru a inversa o matrice folosind bucle

Mai jos este programul JavaScript pentru a inversa o matrice folosind bucle:

Legate de: Introducere în algoritmul de sortare Merge

// 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);

Ieșire:

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

Abordare recursivă pentru a inversa o matrice

Declarație problemă

Ți se oferă o serie arr . Trebuie să inversați elementele matricei, apoi să imprimați matricea inversată. Trebuie să implementați această soluție folosind recursivitatea.

Exemplul 1 : Fie arr = [45, 12, 67, 63, 9, 23, 74]

Invers invers = [74, 23, 9, 63, 67, 12, 45]

Astfel, ieșirea este 74 23 9 63 67 12 45.

Exemplul 2 : Fie arr = [1, 2, 3, 4, 5, 6, 7, 8]

Invers invers = [8, 7, 6, 5, 4, 3, 2, 1]

Astfel, ieșirea este 8 7 6 5 4 3 2 1.

Abordare pentru a inversa o matrice folosind recursivitate

Puteți inversa elementele unui tablou utilizând recursivitatea urmând abordarea de mai jos:

  1. Inițializați variabilele index start și Sfârșit astfel încât să indice primul (0) și ultimul (sizeOfArray - 1) indicele matricei.
  2. Schimbați elementul la index start cu elementul la index Sfârșit .
  3. Apelați recursiv funcția inversă. În parametrii funcției inversate, creșteți valoarea lui start cu 1 și scade valoarea Sfârșit de 1.
  4. Opriți recursivitatea când valoarea fișierului start variabila este mai mare sau egală cu valoarea Sfârșit variabil.

Program C ++ pentru a inversa o matrice folosind recursivitate

Mai jos este programul C ++ pentru a inversa o matrice folosind recursivitate:

// 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;
}

Ieșire:

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

Program Python pentru a inversa o matrice folosind recursivitate

Mai jos este programul Python pentru a inversa o matrice folosind recursivitatea:

locuri care vând pui lângă mine

Related: Programare dinamică: exemple, probleme comune și soluții

# 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)

Ieșire:

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

Program JavaScript pentru a inversa o matrice folosind recursivitate

Mai jos este programul JavaScript pentru a inversa o matrice utilizând recursivitatea:

Related: Cum să găsiți suma numerelor naturale folosind recursivitatea

// 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);

Ieșire:

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

Utilizați recursivitatea pentru a rezolva problemele

O funcție recursivă este o funcție care se numește singură. În recursivitate, o problemă este rezolvată prin descompunerea problemelor în versiuni mai mici și mai simple ale lor.

Există multe avantaje ale recursivității: codul recursiv este mai scurt decât un cod iterativ, poate fi utilizat pentru a rezolva problemele care sunt recursive în mod natural, poate fi utilizat în infix, prefix, evaluări postfix, recursivitatea reduce timpul necesar pentru a scrie și cod de depanare etc.

Recursiunea este un subiect preferat al intervievatorilor din interviurile tehnice. Trebuie să știți despre recursivitate și cum să o utilizați în timp ce scrieți cod pentru a fi cel mai eficient programator pe care îl puteți fi.

Acțiune Acțiune Tweet E-mail Ce este recursivitatea și cum o utilizați?

Aflați elementele de bază ale recursivității, instrumentul esențial, dar ușor de gândit pentru programatori.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • JavaScript
  • Piton
  • Tutoriale de codare
Despre autor Yuvraj Chandra(60 de articole publicate)

Yuvraj este student la Universitatea din Delhi, India. Este pasionat de dezvoltarea web Full Stack. Când nu scrie, explorează profunzimea diferitelor tehnologii.

Mai multe de la Yuvraj Chandra

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona