Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 29, 2011 12:25:32

Тимур
От:
Зарегистрирован: 2011-11-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка слиянием

Помогите пожалуйста!!!
Нужно написать программу, выполняющую сортировку слиянием с описанием каждой строки, чтобы она выполняла сортировку не только цифр,но и букв в алфавитном порядке.
Вот один из примеров этого кода,но его нужно изменить или написать новый.
Спасибо!

# merge sort
print_timing
def merge_sort(list2):
merge_sort_r(list2, 0, len(list2) -1)

# merge sort recursive (used by merge_sort)
def merge_sort_r(list2, first, last):
if first < last:
sred = (first + last)/2
merge_sort_r(list2, first, sred)
merge_sort_r(list2, sred + 1, last)
merge(list2, first, last, sred)

# merge (used by merge_sort_r)
def merge(list2, first, last, sred):
helper_list =
i = first
j = sred + 1
while i <= sred and j <= last:
if list2 <= list2 :
helper_list.append(list2)
i += 1
else:
helper_list.append(list2 )
j += 1
while i <= sred:
helper_list.append(list2)
i +=1
while j <= last:
helper_list.append(list2)
j += 1
for k in range(0, last - first + 1):
list2 = helper_list



Офлайн

#2 Ноя. 29, 2011 22:06:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Сортировка слиянием

"""Merge sort."""

def merge(left, right):
"""Merge two lists in ascending order."""
lst = []
while left and right:
if left[0] < right[0]:
lst.append(left.pop(0))
else:
lst.append(right.pop(0))
if left:
lst.extend(left)
if right:
lst.extend(right)
return lst

def mergesort(lst):
"""Sort the list by merging O(n * log n)."""
length = len(lst)
if length >= 2:
mid = int(length / 2)
lst = merge(mergesort(lst[:mid]), mergesort(lst[mid:]))
return lst



Офлайн

#3 Ноя. 30, 2011 17:00:36

Тимур
От:
Зарегистрирован: 2011-11-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка слиянием

Спасибо большое!!!
А если можно, напишите пожалуйста что делает каждая строчка!



Офлайн

#4 Ноя. 30, 2011 22:26:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Сортировка слиянием

прочитай описание mergesort в интернете



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version