Exemplo n.º 1
0
def main():
    """Start timer, sort, stop timer. write result to file"""
    #sizes = [10,50,100,500,1000,5000,10000,50000,100000,500000,1000000]
    b_times = []
    i_times = []
    m_times = []
    q_times = []
    size = 50000
#for size in sizes:
    for num in range(1,101):
        l = getlist("../lists/size" + str(size) + "/list" + str(num))
        start = time.time()
        bubblesort(l)
        b_times.append((size,time.time() - start))
        start = time.time()
        insertionsort(l)
        i_times.append((size,time.time() - start))
        start = time.time()
        mergesort(l)
        m_times.append((size,time.time() - start))
        start = time.time()
        quicksort(l)
        q_times.append((size,time.time() - start))
    csv = "n,bubble,insertion,merge,quick\n"
    #for size in sizes:
    for i in range(100):
        csv += str(b_times[i][0]) + ',' + str(b_times[i][1]) + ','
        csv += str(i_times[i][1]) + ',' + str(m_times[i][1]) + ','
        csv += str(m_times[i][1]) + '\n'
    f = open("size50000-python.csv", 'w')
    f.write(csv)
    f.close()
Exemplo n.º 2
0
 def test_sort(self):
     for i in range(50):
         l = self.make_list()
         l2 = l[:]
         self.assertTrue(mergesort(l) == sorted(l2))
     for i in range(50):
         l = self.make_list()
         l2 = l[:]
         self.assertTrue(mergesort_inplace(l) == sorted(l2))
Exemplo n.º 3
0
def main():
    """Try all of the size10 lists"""
    for i in range(1,101):
        l = getlist("../lists/size10/list" + str(i))
        assert(sorted(l) == quicksort(l))
        assert(sorted(l) == mergesort(l))
        assert(sorted(l) == bubblesort(l))
        assert(sorted(l) == insertionsort(l))
    print("done")
Exemplo n.º 4
0
def save_time(i, list):
    start = time.clock()
    time_bubble[i] = bubblesort(list[0])		# Tempo do bubblesort
    time_quick[i] = quicksort(list[1])		# Tempo do quicksort
    time_insert[i] = insertionsort(list[2])  # Tempo do insertionsort
    time_shell[i] = shellsort(list[3])		# Tempo do shellsort
    time_select[i] = selectionsort(list[4])  # Tempo do selectionsort
    time_heap[i] = heapsort(list[5])		# Tempo do heapsort
    time_merge[i] = mergesort(list[6])		# Tempo do merge
    end = time.clock()
    actualtime = end - start
    print "Tamanho de lista: {0} | Tempo para a execucao de todos algoritmos: {1}s".format(len(list[0]), actualtime)
    return  # forca a saida
def test_mergesort(input, output):
    for_system = []
    for i in input:
        for_system.append(i)
    start_time = time.time()
    for_system.sort()
    end_time = time.time()
    execution_time_1 = end_time - start_time
    print "the execution_time_sort() " + str(execution_time_1)
    if collections.Counter(for_system) == collections.Counter(output):
        print "Test Passed"
    else:
        print "Test Failed"

    start_time = time.time()
    expected = mergesort(input)
    end_time = time.time()
    execution_time_2 = end_time - start_time
    print "the execution_time_mergesort() " + str(execution_time_2)
    if collections.Counter(expected) == collections.Counter(output):
        print "Test Passed"
    else:
        print "Test Failed"
    start_time = time.time()
    mergesort_indexing(input, 0, len(input))
    end_time = time.time()
    execution_time_3 = end_time - start_time
    print "the execution_time_mergesort_indexing() " + str(execution_time_3)
    if collections.Counter(input) == collections.Counter(output):
        print "Test Passed"
    else:
        print "Test Failed"
    time_difference_1 = execution_time_2 - execution_time_3
    print "the time difference between mergesort() and mergesort_indexing() is ", abs(
        time_difference_1)
    time_difference_2 = execution_time_1 - execution_time_2
    print "the time difference between sort() and mergesort() is ", abs(
        time_difference_2)
    time_difference_3 = execution_time_1 - execution_time_3
    print "the time difference between sort() and mergesort_indexing() is ", abs(
        time_difference_3)
Exemplo n.º 6
0
def pairsum2(l, target):
    l = mergesort(l)

    i = 0
    j = len(l) - 1
    count = 0
    while True:
        # just like in binary search
        if i > j:
            break

        if l[i] + l[j] == target:
            count = count + 1
            i = i + 1
            j = j - 1
            continue
        elif l[i] + l[j] > target:
            j = j - 1
            continue
        else:
            i = i + 1
            continue

    return count
Exemplo n.º 7
0
 def test_empty(self):
     self.assertTrue(mergesort([]) == [])
     self.assertTrue(mergesort([1]) == [1])
     self.assertTrue(mergesort_inplace([]) == [])
     self.assertTrue(mergesort_inplace([1]) == [1])
Exemplo n.º 8
0
from mergesort import *

A = [4, 2, 5, 1, 6, 3]
A = [1, 6, 3]
mergesort(A)
print(A)
Exemplo n.º 9
0
 def test_mergesort(self):
     testlist = [random.randrange(0, 10000) for _ in range(2001)]
     self.assertEqual(mergesort(testlist), sorted(testlist))
Exemplo n.º 10
0
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

        if cursor(bubblesort_frame, bubblesort_btn, bubblesortConfig_btn):
            bubblesort(speed, listlength)
            setTitle()  # Reset
            setBoxes()
        elif cursor(quicksort_frame, quicksort_btn, quicksortConfig_btn):
            quicksort(speed, listlength)
            setTitle()  # Reset
            setBoxes()
        elif cursor(mergesort_frame, mergesort_btn, mergesortConfig_btn):
            mergesort(speed, listlength)
            setTitle()  # Reset
            setBoxes()
        elif cursor(insertionsort_frame, insertionsort_btn,
                    insertionsortConfig_btn):  # Algorithm not done
            # insertionsort()
            setTitle()  # Reset
            setBoxes()
'''
        # Cursor in bubblesort
        bubblesortChange = False
        if bubblesort_frame[0]+sortingBoxes_size_w > mouse_pos[0] > bubblesort_frame[0] and bubblesort_frame[1]+sortingBoxes_size_h > mouse_pos[1] > bubblesort_frame[1]:
            bubblesortChange= True
            for i in range(100, 256, 15):
                mouse_pos = pygame.mouse.get_pos()
                if bubblesort_frame[0]+sortingBoxes_size_w > mouse_pos[0] > bubblesort_frame[0] and bubblesort_frame[1]+sortingBoxes_size_h > mouse_pos[1] > bubblesort_frame[1]:
Exemplo n.º 11
0
from quicksort import *
from mergesort import *

test = [99,14,17,2,8,19,52,36,100]
print "Test array: " + str(test)
print "Mergesort: " + str(mergesort(test))
print "Quicksort: " + str(quicksort(test))