方法一:自带sort方法排序
方法二:递归,快排
#字典序又称为字母顺序
# import sys
# l = [d.strip('\n') for d in sys.stdin.readlines()]
# l.pop(0)
# l.sort()
# for i in l:
# print(i)
#递归,快排
def cmp(str1,str2): #对比两个字符串大小,str1小的话则返回True,str1为空的话,说明str1小于str2(即str1短于str2)
if not str1:
return True
elif not str2:
return False
if str1[0] == str2[0]: #如果str1和str2都不会空,比较第一个字符,若相同,则递归比较剩下的字符
st1 , st2 = str1[1:],str2[1:] #若list有两个字符,a[2]会越界,a[2:]会返回空列表
return cmp(st1, st2)
elif str1[0] < str2[0]:
return True
return False
#快排算法
def quicksort(stringList):
if not stringList : #传入空列表,返回空列表,递归的最后一层
return stringList
less = []
big = []
temp = stringList.pop() #取最后一个字符作为标志位
for i in stringList:
if cmp(i, temp):
less.append(i)
else :
big.append(i)
return quicksort(less) + [temp] + quicksort(big) #当传入的stringList只有一个字符,less和big都为空,此时返回它自己
#[]+[1]+[] 等于 [1]
import sys
l = [d.strip('\n') for d in sys.stdin.readlines()]
l.pop(0)
for i in quicksort(l):
print(i)
网友评论