• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm na permutacje bez rekurencji

Hosting forpsi easy 1 pln
+1 głos
2,994 wizyt
pytanie zadane 13 sierpnia 2016 w C i C++ przez jankustosz1 Nałogowiec (35,480 p.)
Witam.

Od pewnego czasu próbuję napisać algorytm to wypisywania permutacji w porządku leksykograficznym bez rekurencji. Nie mam pojęcia jak to zrobić, a w sieci same rekurencje. Może znacie taki algorytm.
komentarz 13 sierpnia 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
Się tak spytam, a czemu nie chcesz rekurencji ?
komentarz 13 sierpnia 2016 przez jankustosz1 Nałogowiec (35,480 p.)
Bo ma ograniczony stos i jeszcze nie widziałem nierekurencyjnego rozwiązania.

1 odpowiedź

0 głosów
odpowiedź 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,760 p.)
1. Robisz sortowanie po pierwszym indeksie tablic permutacji

2. Grupujesz te tablice, których wartość pierwszego indeksu była taka sama.

3. Sortujesz po drugim indeksie utworzone grupy (pozostałe tablice są na swoich miejscach już)

4. Znowu tworzysz ewentualne grupy i sortujesz po kolejnym indeksie.

Przestajesz, kiedy nie utworzysz już żadnej grupy.

Nie wiem, czy to dobry pomysł, wydaje mi się w porządku. :) Nie wiem też, czy jasno się wyraziłem, więc pytaj. Czekam też na ewentualne uwagi do tego pomysłu.
komentarz 13 sierpnia 2016 przez manjaro Nałogowiec (37,390 p.)

Jeżeli robisz zadanie na SPOJu z permutacji http://pl.spoj.com/problems/TPERM2/  to uważaj i nie wtop  tak jak ja. Męczyłem się też z tym algorytmem dość długo a jak już zrobiłem to się okazało że jedynym dostępnym językiem dla tego zadania jest C.

komentarz 13 sierpnia 2016 przez jankustosz1 Nałogowiec (35,480 p.)
Rozumiem że twój sposób jest na posortowanie wygenerowanych permutacji na kolejność leksykograficzną a pytanie brzmi jak te permutacje wygenerować.
komentarz 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,760 p.)
Aaa, no to nie sprecyzowałeś, bo w pytaniu jest mowa o wypisywaniu permutacji, nie o ich generowaniu. :) Jak coś wymyślę, to tutaj zamieszczę.
komentarz 13 sierpnia 2016 przez Surykat Stary wyjadacz (14,760 p.)
https://en.wikipedia.org/wiki/Heap%27s_algorithm

Tutaj masz wersję iteracyjną- tylko będziesz musiał sobie to przepisać do C/C++
komentarz 13 sierpnia 2016 przez jankustosz1 Nałogowiec (35,480 p.)
Dzięki.

Podobne pytania

+1 głos
2 odpowiedzi 553 wizyt
pytanie zadane 20 lipca 2019 w C i C++ przez Semcio Początkujący (340 p.)
–1 głos
1 odpowiedź 229 wizyt
pytanie zadane 10 listopada 2015 w JavaScript przez Michał628496 Pasjonat (17,340 p.)
0 głosów
1 odpowiedź 369 wizyt

92,129 zapytań

140,788 odpowiedzi

317,814 komentarzy

61,451 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1886p. - Łukasz Eckert
  2. 1856p. - Dawid128
  3. 1844p. - Marcin Putra
  4. 1844p. - CC PL
  5. 1775p. - Mikbac
  6. 1633p. - rafalszastok
  7. 1562p. - rucin93
  8. 1553p. - sefirek
  9. 1492p. - Adrian Wieprzkowicz
  10. 1456p. - Eryk Andrzejewski
  11. 1444p. - jaroslawroszyk
  12. 1383p. - Rafał Trójniak
  13. 1325p. - Michal Drewniak
  14. 1275p. - dia-Chann
  15. 1272p. - 13NOONE37
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...