
Добавил:
linnesse
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Код лаб / MergeSort
.pyfrom array import array
import ctypes
from LinkedList import LinkedList
from ArrayList import ArrayList
import random
def Merge(array, left, mid, right):
left_size = mid - left + 1
right_size = right - mid
left_list = ArrayList()
for i in range(0, left_size):
left_list.add(array.get(left+i))
right_list = ArrayList()
for j in range(0, right_size):
right_list.add(array.get(mid + 1 + j))
i = j = 0
k = left
while i < left_size and j < right_size:
if left_list.get(i) <= right_list.get(j):
array.set(k, left_list.get(i))
i += 1
else:
array.set(k, right_list.get(j))
j += 1
k += 1
while i < left_size:
array.set(k, left_list.get(i))
i += 1
k += 1
while i < right_size:
array.set(k, right_list.get(j))
j += 1
k += 1
def MergeSort(array, left, right):
if left < right:
mid = left + (right - left) // 2
MergeSort(array, left, mid)
MergeSort(array, mid+1, right)
Merge(array, left, mid, right)
#myList = ArrayList()
"""for i in range(10):
myList.add(random.randint(0,100))
for i in range(10):
print ("% d" % myList.get(i))
MergeSort(myList, 0, 9)
print("Result")
for i in range(10):
print ("% d" % myList.get(i))"""
Соседние файлы в папке Код лаб