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

Czy to sortowanie zadziała (?)

Object Storage Arubacloud
0 głosów
112 wizyt
pytanie zadane 18 stycznia 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
Zamierzam napisać własny algorytm (?) sortujący i mam już pomysł jak go zrobić, ale nie wiem, czy taki sposób byłby efektywny. Oto zarys:

1. Przekazuje się tablicę plików do funkcji, która sprawdza dla każdego elementu czy jest większy od elementu o jeden index "niżej". Jeśli jest zwraca true + wartość + index, jeśli nie false + wartość + index (będzie specjalna struktura do tego)

2. Teraz dla każdej wartości oznakowanej "false" ustala się wartość najwyższą z tablicy (np. Dla 5 4 2 3 będzie to 4).

3. Oblicza się różnicę tych liczb oznaczonych jako "false" z tą najwyższą. (Np. 5-3 i 5-2) liczba z której różnica będzie mniejsza powędruje na górę, przed tą najwyższą liczbę. (w tym wypadku 3)

4. Tworzy się nową tablicę i wypełnia się wynikami; wypisuje się ją na ekran.  

 

 

Jeszcze tego nie okodowałem, naewet nie tknąłem środowiska, więc nwm jak to zadziała.

 

Czy to ma jakieś luki? Lub będzie działać bardzo nie efektywnie? Co można w tym zmienić?

 

 

PS język C++

1 odpowiedź

0 głosów
odpowiedź 19 stycznia 2018 przez Aisekai Nałogowiec (42,190 p.)
Szczerze? Nie widzę tego.

Pisząc wartość najwyższa (w punkcie 2) masz na myśli wartość max z false czy ogólną?

Jeżeli byś to chciał tak posortować, to twój algorytm jest bardzo podobny do https://pl.wikipedia.org/wiki/Sortowanie_przez_wybieranie z niepotrzebnymi operacjami (wyznaczanie różnicy z maksymalną wartością, nadawanie wszystkim komórkom w tablicy dodatkowych wartości [true i false] itp). Do tego złożoność obliczeniowa takiego algorytmu (szybko licząc) jest minimum rzędu kwadratowego.

Aglorytm Quicksort ma złożoność nlogn (w przybliżeniu). Sortowanie przez scalanie 2nlogn.
komentarz 19 stycznia 2018 przez Hiskiel Pasjonat (22,830 p.)
No to yak. Racja, machnąłem się. Oblicza się różnice (w tym przypadku) dla 4-3 i 4-2 a nie 5-3 i 5-2. I nie wiem co to jest ten nlogn oraz 2nlogn, ponieważ algorytmiki nie ogarniam, a jakiś taki algorytm, byłby wstępem do niej..

Podobne pytania

0 głosów
1 odpowiedź 131 wizyt
pytanie zadane 23 września 2018 w Offtop przez Layoutowiec Mądrala (5,470 p.)
0 głosów
2 odpowiedzi 298 wizyt
pytanie zadane 19 lipca 2022 w C i C++ przez DarkJedx Nowicjusz (190 p.)
+1 głos
0 odpowiedzi 229 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...