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()
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))
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")
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)
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
def test_empty(self): self.assertTrue(mergesort([]) == []) self.assertTrue(mergesort([1]) == [1]) self.assertTrue(mergesort_inplace([]) == []) self.assertTrue(mergesort_inplace([1]) == [1])
from mergesort import * A = [4, 2, 5, 1, 6, 3] A = [1, 6, 3] mergesort(A) print(A)
def test_mergesort(self): testlist = [random.randrange(0, 10000) for _ in range(2001)] self.assertEqual(mergesort(testlist), sorted(testlist))
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]:
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))