Talk:Sorting algorithms/Stooge sort
I was wondering if any of your can help me. I have implamented a few sorting algorithms in other languages but doing something as simple as the stooge sort seems to be confusing me. I am going this implamentation in NewLisp for practice. I like the language so far but i seem to hit a snag in this latest code: <lang NewLISP> (define (stoogesort L left right)(if (> ( L left ) ( L right )) (swap ( L left) ( L right ))) (if (>= (+ left 1) right) L)
- (round (/ right 3))
(stoogesort(L left (- right (round (/ right 3))))) (stoogesort(L (+ left (round (/ right 3))) right)) (stoogesort(L left (- right (round (/ right 3)))))L)
(stoogesort (list 7 3 2 3 4 0 0 0 0 0) 0 9)
</lang>
I get the following as output: > <lang NewLISP> (lambda (L left right) (if (> (L left) (L right)) (swap (L left) (L right))) (if (>= (+ left 1) right) L) (stoogesort (L left (- right (round (/ right 3))))) (stoogesort (L (+ left (round (/ right 3))) right)) (stoogesort (L left (- right (round (/ right 3))))) L)
ERR: illegal parameter type in function > : left called from user defined function stoogesort called from user defined function stoogesort </lang> --Michael Chrisco