看清楚了,不要眨眼睛,一定要收藏,方便大家以后装逼以及和别的语言撕逼

qsort=(l)->if l.length== 0 then  l else qsort(l[1..].filter (x)->x<l[0]).concat  l[0],qsort(l[1..].filter (x)->x>l[0])

解释:如果为空直接返回,如果比第一个数小的数组放到左边并递归,第一个数放到中间,比第一个数大的数组放到右边并递归

测试(非常完美):

qsort [1,5,3,4,5,10,-2,6,-12,41,1,5,1,-2,-13,12]/*return [-13, -12, -2, 1, 3, 4, 5, 6, 10, 12, 41]*/
qsort []/*return  []*/

结论:就是这么牛逼,有更短的快速排序,用coffeescript写的,coffeescript就是一系列javascript的语法糖,谁还敢说javascript的不是


已注销
981 声望48 粉丝

Focus on programming efficiency