W pseudokodach sortowania u Cormena jest kilka rzeczy które mi się nie podobają
Sortowanie przez scalanie
- Używa wartowników
Nie wydaje mi się aby były konieczne a utrudniają napisanie działającego programu
bo co jeśli wartością w tablicy(na liście) będzie wartość maksymalna (sortowanie rosnące) lub minimalna (sortowanie malejące)
albo gdybyśmy chcieli sortować coś innego niż liczby - Używa dwóch tablic pomocniczych zamiast jednej
Jeżeli używamy tablic dynamicznych to może nie ma aż takiego znaczenia ale jeśli mamy tablicę o stałym rozmiarze - Używa rekurencji przez co dla pewnych danych występuje przepełnienie stosu
Kodu nie podam
Mam w Pascalu w C a nawet ostatnio przepisałem na wasz ulubiony Python
Pseudokod znajduje się w angielskich wersjach książek takich jak
Introduction to algorithms
Algorithms unlocked
- Jak pozbyć się tych wartowników
- Po co mu dwie tablice pomocnicze zamiast jednej przy okazji można by się zastanowić jak ograniczyć koszt pamięciowy
- Jak przepisać ten kod na kod iteracyjny
Sortowanie stogowe
W sortowaniu stogowym natomiast używa rekurencji ogonowej
Widziałem próby usunięcia tej rekurencji przez złamanie pętli zastępującej tę rekurencję
Czy ma ktoś bardziej elegancki pomysł na usunięcie tej rekurencji z sortowania stogowego