Czy to sortowanie zadziała?

0

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 kompilatora, 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++

0

ustala się wartość najwyższą z tablicy (np. Dla 5 4 2 3 będzie to 4).

Jeżeli w takim wypadku zwracałoby 4 to coś tu nie gra.

Zobacz sobie coś takiego jak sortowanie bąbelkowe ;)

0

Jak chcesz własny dobry zrobić to polecam jednak te inspirujące algorytmy:
https://en.wikipedia.org/wiki/Bogosort

1 użytkowników online, w tym zalogowanych: 0, gości: 1