用Python的Lambda运算定义的归并排序算法:
记录如下:
1
def qsort():
2
c = lambda f, v1, v2 : \
3
([] if len(v2) == 0 else v2[0:1] + f(f, v1, v2[1:len(v2)])) if len(v1)==0 \
4
else v1[0:1]+f(f,v1[1:len(v1)],v2) if len(v2) == 0 \
5
else v1[0:1]+f(f,v1[1:len(v1)],v2) if v1[0]<v2[0] \
6
else v2[0:1]+f(f,v1,v2[1:len(v2)]);
7
q = lambda f, c, arr :\
8
arr if len(arr) < 2 else \
9
c(c, f(f, c, arr[0:int(len(arr)/2)]), f(f, c, arr[int(len(arr)/2):len(arr)]));
10
return lambda arr : q(q,c,arr);
11
效率很低,
如有更好的算法,请高手赐教