class Slist: def __init__(self,lista): self.len = len(lista) def mergeSort(self, L,way=1): """0 - ot min do max 1 - ot max do min""" if len(L) > 1: i = len(L)/2 left = self.mergeSort(L[:i]) right = self.mergeSort(L[i:]) print way return self.__klej(left,right,way) else: return L def __klej(self,left,right,way): result = [] ileft = 0 iright = 0 while True: if ileft == len(left): result.extend(right[iright:]) return result if iright == len(right): result.extend(left[ileft:]) return result if way == 0: if left[ileft] >= right[iright]: result.append(right[iright]) iright += 1 else: result.append(left[ileft]) ileft += 1 if way == 1: if left[ileft] <= right[iright]: result.append(right[iright]) iright += 1 else: result.append(left[ileft]) ileft += 1
но при изменении на 0
print a.mergeSort(lista,0)
прошу прощения за быдло код
![](/static/djangobb_forum/img/smilies/smile.png)