Quicksort એક divide-and-conquer sort છે જે pivot પસંદ કરે છે, તત્વોને તેનાથી નાના અને મોટા તત્વોમાં વિભાજિત કરે છે, પછી દરેક બાજુને પુનરાવર્તિત રીતે સૉર્ટ કરે છે। સરેરાશ O(n log n), સૌથી ખરાબ કેસ O(n²).
ધારણા
Partitioning pivot ને તેની અંતિમ સૉર્ટ કરેલ સ્થિતિમાં મૂકે છે; બધું ડાબું નાનું છે, બધું જમણું મોટું છે. બંને બાજુ પર પુનરાવર્તન કરો.
ઉદાહરણ
():
(arr) <= :
arr
pivot = arr[(arr) // ]
left = [x x arr x < pivot]
mid = [x x arr x == pivot]
right = [x x arr x > pivot]
quicksort(left) + mid + quicksort(right)
quicksort([, , , , ])
