Quicksort Lomuto i Hoare. Stackoverflow.

0

200k elementów, pesymistycznie odcinasz jeden element na rekurencje w partition. To nam daje 200k zagłębień rekurencji. Twoja funkcja ma 3 argumenty (wskaźnik i 2 inty), przyjmijmy że wszystkie po 4 bajty, plus adres powrotu 4 bajty, więc mamy 16 bajtów na stosie na każdą rekurencje. 200 000 * 16 = 3200000 bajtów = 3200 = kilobajtów = 3.2 MB

Default to chyba 1 albo 2 MB więc pewnie dlatego sie sypie. Skompiluj to z flagą podbijającą rozmiar stosu.

0

Dzięki wielkie za podpowiedź. Widać, że znasz się na temacie ;)

Nie przypuszczałem, że może chodzić o coś takiego. Zabieram się za szukanie co i jak z tą flagą. Dam znać czy zadziałało.

0

Dzięki wielkie działa ;)

Jednak zamiast 3 MB podałem 20 MB ponieważ jak patrze w menadżerze zadań to sięgało do 5-7-13 MB i wtedy wywalało. Więc 20 to z mała rezerwą ;)

Swoją drogą rosło bardzo szybko więcej niż 0.2MB/s :)

0

.. albo alokuj na stercie :-) Jest powód że chcesz mieć to koniecznie na stosie?

Edit: Ok... rekurencja... tu raczej pomoże zmiana na wersję iteracyjną..

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