20141222

作者: 老子毫无动静的坐着像一段呆木头 | 来源:发表于2014-12-22 22:39 被阅读0次

    #用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]]不存在

    相关文章

      网友评论

        本文标题:20141222

        本文链接:https://www.haomeiwen.com/subject/atgytttx.html