7. Quicksort | Index << >> |
Q←{1≥≢⍵:⍵ ⋄ (∇ ⍵⌿⍨0>s)⍪(⍵⌿⍨0=s)⍪∇ ⍵⌿⍨0<s←⍵ ⍺⍺ ⍵⌷⍨?≢⍵} x ← ? 21⍴13 x 3 2 3 9 0 11 4 2 1 9 9 1 4 8 7 9 3 1 1 5 7 - Q x 0 1 1 1 1 2 2 3 3 3 4 4 5 7 7 8 9 9 9 9 11 a ← 'Fi' 'Jay' 'John' 'Morten' 'Roger' a ,← 'JD' 'Jd' 'Anna' 'Scott' 'Zeus' strcmp←{⍺≡⍵:0 ⋄ -/⍋↑⍺ ⍵} strcmp¨ Q a ┌────┬──┬──┬───┬──┬────┬──────┬─────┬─────┬────┐ │Anna│Fi│JD│Jay│Jd│John│Morten│Roger│Scott│Zeus│ └────┴──┴──┴───┴──┴────┴──────┴─────┴─────┴────┘ |