20141222

#用python实现对字符串的归并排序

def merge(l1,l2):# 归并函数 将两个已排好序的列表类型序列合并

i = 0

j = 0

r = []

while (i <=len(l1)-1) and (j <=len(l2)-1):

if ord(l1[i]) <= ord(l2[j]):

r.append(l1[i])

i += 1

else:

r.append(l2[j])

j += 1

print i,j

if i == len(l1):

while j <=len(l2)-1:

r.append(l2[j])

j +=1

elif j == len(l2):

while i <= len(l1)-1:

r.append(l1[i])

i +=1

else:

pass

return r

def sortl(l):#主排序函数,对一个已被转换为列表格式的字符串进行排序

if len(l)>1:

l1=l[:len(l)/2]

l2=l[len(l)/2:]

ll = merge(sortl(l1),sortl(l2))

else:

ll = l[:]

return ll

def fsort(s):#最终的排序函数,可对任意字符串进行排序(尚不支持非ascii)

return sortl(list(s))

总结:

* 思路清晰,不犯低级错误

* 列表访问,l[a:b]访问的是位于位置a至位置b-1的各元素,***l[a:a]=[],l[:len(l)]=l***

* l[len[l]]不存在

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容