python算法练习
gnome sort:
def gnomeSort(unsort):
i = 0
while i < len(unsort):
if i == 0 or unsort[i -1] <= unsort[i]:
i+= 1
else:
unsort[i-1], unsort[i] = unsort[i], unsort[i -1]
i -= 1
merge sort:
def mergesort(seq):
mid = len(seq) // 2
lft, rgt = seq[:mid], seq[mid:]
if len(lft) > 1 : lft = mergesort(lft)
if len(rgt) > 1 : rgt = mergesort(rgt)
res = []
while lft and rgt:
if lft[0] >= rgt[0]:
res.append(lft.pop(0))
else:
res.append(rgt.pop(0))
return (lft or rgt) + res
def gnomeSort(unsort):
i = 0
while i < len(unsort):
if i == 0 or unsort[i -1] <= unsort[i]:
i+= 1
else:
unsort[i-1], unsort[i] = unsort[i], unsort[i -1]
i -= 1
merge sort:
def mergesort(seq):
mid = len(seq) // 2
lft, rgt = seq[:mid], seq[mid:]
if len(lft) > 1 : lft = mergesort(lft)
if len(rgt) > 1 : rgt = mergesort(rgt)
res = []
while lft and rgt:
if lft[0] >= rgt[0]:
res.append(lft.pop(0))
else:
res.append(rgt.pop(0))
return (lft or rgt) + res