用Python的Lambda运算定义的归并排序算法:
记录如下:
1def 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
效率很低,
如有更好的算法,请高手赐教