, , ( ) 5 :
4 3 2 5 9 11 8 12 6 10 7
. , , , .
, Quicksort, , - , , - , . , :
, 5 :
Math.floor(list.length / 2)
. , . ( , ):
concat(qs([4 3 2]), 5, qs([9 11 8 12 6 10 7])) =
concat(qs([2]), 3, qs([4]), 5, qs([9, 11, 8, 6, 10, 7]), 12, qs([])) =
concat(2, 3, 4, 5, qs([6, 7]), 8, qs([9, 11, 10]), 12) =
concat(2, 3, 4, 5, qs([6]), 7, qs([]), 8, qs([9, 10]), 11, qs([]), 12) =
concat(2, 3, 4, 5, 6, 7, 8, qs([9]), 10, qs([]), 11, 12) =
concat(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
, , qs, :
qs(<some_left_list>), <the_pivot>, qs(<some_right_list>)
qs ( ( , qs )).
, . , .