Niz je zbirka stavki pohranjenih na susjednim memorijskim lokacijama. Preokret niza jedna je od najčešćih operacija koje se izvode na nizu. U ovom ćete članku naučiti kako napisati vlastitu implementaciju preokretanja niza pomoću iterativnih i rekurzivnih pristupa.
Iteracijski pristup obrnutom nizu
Izjava o problemu
Dobili ste niz dol . Morate obrnuti elemente niza, a zatim ispisati obrnuti niz. Ovo rješenje morate implementirati pomoću petlji.
Primjer 1 : Neka je arr = [45, 12, 67, 63, 9, 23, 74]
Obrnuti arr = [74, 23, 9, 63, 67, 12, 45]
kako promijeniti veličinu slojeva u Photoshopu
Tako je izlaz: 74 23 9 63 67 12 45.
Primjer 2 : Neka je arr = [1, 2, 3, 4, 5, 6, 7, 8]
Obrnuti arr = [8, 7, 6, 5, 4, 3, 2, 1]
Tako je izlaz: 8 7 6 5 4 3 2 1.
Pristup obrnutom nizu pomoću petlji
Elemente niza možete obrnuti pomoću petlji slijedeći donji pristup:
- Inicijalizirajte varijable indeksa 'i' i 'j' tako da upućuju na prvi (0) i posljednji (sizeOfArray - 1) indeks niza.
- U petlji zamijenite element na indeksu i s elementom na indeksu j.
- Povećajte vrijednost i za 1 i smanjite vrijednost j za 1.
- Pokrenite petlju do i
C ++ program za preokretanje niza pomoću petlji
Ispod je program C ++ za preokretanje niza pomoću petlji:
// 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;
}
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
Povezano: Kako preokrenuti niz u C ++, Python i JavaScript
Python program za preokretanje niza pomoću petlji
Ispod je program Python za preokretanje niza pomoću petlji:
# 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)
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
JavaScript program za preokretanje niza pomoću petlji
Ispod je JavaScript program za preokretanje niza pomoću petlji:
Povezano: Uvod u algoritam spajanja sortiranja
// 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);
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
Rekurzivni pristup obrnutom nizu
Izjava o problemu
Dobili ste niz dol . Morate obrnuti elemente niza, a zatim ispisati obrnuti niz. Ovo rješenje morate implementirati pomoću rekurzije.
Primjer 1 : Neka je arr = [45, 12, 67, 63, 9, 23, 74]
Obrnuti arr = [74, 23, 9, 63, 67, 12, 45]
Tako je izlaz 74 23 9 63 67 12 45.
Primjer 2 : Neka je arr = [1, 2, 3, 4, 5, 6, 7, 8]
Obrnuti arr = [8, 7, 6, 5, 4, 3, 2, 1]
Tako je izlaz 8 7 6 5 4 3 2 1.
Pristup obrnutom nizu pomoću rekurzije
Elemente niza možete poništiti pomoću rekurzije slijedeći donji pristup:
- Pokretanje varijabli indeksa početak i kraj tako da pokazuju prvi (0) i posljednji (sizeOfArray - 1) indeks niza.
- Zamijenite element na indeksu početak s elementom na indeksu kraj .
- Rekurzivno pozovite obrnutu funkciju. U parametrima obrnute funkcije povećajte vrijednost početak za 1 i smanji vrijednost kraj za 1.
- Zaustavite rekurziju kada vrijednost početak varijabla je veća ili jednaka vrijednosti kraj promjenjiva.
C ++ program za preokretanje niza pomoću rekurzije
Ispod je program C ++ za preokretanje niza pomoću rekurzije:
// 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;
}
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
Python program za preokretanje niza pomoću rekurzije
Ispod je program Python za preokretanje niza pomoću rekurzije:
kako premjestiti aplikacije na sd karticu
Povezano: Dinamičko programiranje: primjeri, uobičajeni problemi i rješenja
# 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)
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
JavaScript program za obrnuti niz pomoću rekurzije
Ispod je JavaScript program za preokretanje niza pomoću rekurzije:
Povezano: Kako pronaći zbroj prirodnih brojeva pomoću rekurzije
// 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);
Izlaz:
Original Array:
45 12 67 63 9 23 74
Reversed array:
74 23 9 63 67 12 45
Za rješavanje problema koristite rekurziju
Rekurzivna funkcija je funkcija koja se sama poziva. U rekurziji se problem rješava razbijanjem problema na manje, jednostavnije verzije samih sebe.
Mnogo je prednosti rekurzije: rekurzivni kôd je kraći od iteracijskog koda, može se koristiti za rješavanje problema koji su prirodno rekurzivni, može se koristiti u infix, prefiksima, postfix evaluacijama, rekurzija skraćuje vrijeme potrebno za pisanje i kod za otklanjanje pogrešaka itd.
Rekurzija je omiljena tema anketara u tehničkim intervjuima. Morate znati o rekurziji i kako je koristiti prilikom pisanja koda da biste bili najučinkovitiji programer.
Udio Udio Cvrkut E -pošta Što je rekurzija i kako je koristiti?Naučite osnove rekurzije, bitan, ali pomalo zapanjujući alat za programere.
Pročitajte Dalje Povezane teme- Programiranje
- JavaScript
- Piton
- Vodiči za kodiranje
Yuvraj je student preddiplomskog studija Računarstva na Sveučilištu u Delhiju u Indiji. Oduševljen je Full Stack web razvojem. Kad ne piše, istražuje dubinu različitih tehnologija.
Više od Yuvraja ChandrePretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu