Może ktoś pomóc?
http://stackoverflow.com/questions/33736275/quicksort-lomuto-hoare-stackoverflow-exception-in-partition-function
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.
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.
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 :)
.. 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ą..