Recenze

Jak začít zpátečku?

Dané pole arr[] , úkolem je zvrátit pole. Obrácení pole znamená přeskupení prvky takové, že První prvek se stává poslední se druhý prvek se stává předposlední a tak dále.

Příklady:

Vstup: arr[] =
Výstup:
Vysvětlení: První prvek 1 přesune na poslední pozici, druhý prvek 4 přesune do předposledního a tak dále.

Vstup: arr[] =
Výstup:
Vysvětlení: První prvek 4 přesune na poslední pozici, druhý prvek 5 přesune na předposlední a tak dále.

  • [Naivní přístup] Použití dočasného pole – O(n) čas a O(n) prostor
  • [Očekávaný přístup – 1] Použití dvou ukazatelů – O(n) Čas a O(1) Prostor
  • [Očekávaný přístup – 2] Záměnou prvků – O(n) Čas a O(1) Prostor
  • [Alternativní přístup] Použití rekurze – O(n) čas a O(n) prostor
  • Použití vestavěných metod – O(n) čas a O(1) prostor

[Naivní přístup] Použití dočasného pole – O(n) čas a O(n) prostor

  • Vytvořit dočasný pole stejné velikosti jako původní pole.
  • Nyní zkopírujte všechny prvky z původního pole do dočasného pole obrácené pořadí .
  • Nakonec zkopírujte všechny prvky z dočasného pole zpět do původního pole.

Pracovní:

Níže je implementace algoritmu:

      Jáva
      PYTHON
      JavaScript

Výstup

5 6 2 3 4 1

Časová složitost: O(n), Kopírování prvků do nového pole je lineární operace.
Pomocný prostor: O(n), protože k uložení obráceného pole používáme další pole.

[Očekávaný přístup – 1] Použití dvou ukazatelů – O(n) Čas a O(1) Prostor

Cílem je zachovat dva ukazatele: vlevo si přesně , takové, že vlevo body na začátek pole a přesně ukazuje na konec pole.

Zatímco levý ukazatel je menší než pravý ukazatel, prohoďte prvky na těchto dvou pozicích. Po každé výměně, přírůstek ο vlevo ukazatel a dekrementovat ο přesně ukazatel se posune směrem ke středu pole. Tím dojde k záměně všech prvků v první polovině s odpovídajícími prvky ve druhé polovině.

Pracovní:

Níže je implementace algoritmu:

         Jáva
Přečtěte si více
Jak vyrobit jídelní stůl: nápady, materiály, pokyny krok za krokem, fotografie a videa.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button