def single_algo(gen): dd = np.zeros((1 + repeats, len(b_params))) dd[0, :] = b_params #to fill algo = kadane probeIndex = 0 too_deep = False for probe in b_params: if too_deep: break print 'Probe size ', probe, '(Index ', probeIndex, ')...' for row in range(1, repeats + 1): print 'Repeat ', row, '...' data = gen(100000, max_val=probe) try: perf = measure_exe_time(algo, data) dd[row, probeIndex] = perf print perf except RuntimeError: dd[row, probeIndex] = 0 too_deep = True probeIndex += 1 return dd
def f(n, b): results = [] for i in range(1): data = generate_random_sequence(n, max_val = b) perf = measure_exe_time(counting_sort, data) results.append(perf) return mean(results)
def single_algo(gen): dd = np.zeros((1 + repeats, len(probe_sizes))) dd[0, :] = probe_sizes # to fill algo = shell_sort probeIndex = 0 too_deep = False for probe in probe_sizes: if too_deep: break print "Probe size ", probe, "(Index ", probeIndex, ")..." for row in range(1, repeats + 1): print "Repeat ", row, "..." data = gen(probe) try: perf = measure_exe_time(algo, data) dd[row, probeIndex] = perf print perf except RuntimeError: dd[row, probeIndex] = 0 too_deep = True probeIndex += 1 return dd
def bench(): probes = range(1, 21) repeats = 1 rec = np.zeros((len(probes), 3)) ite = np.zeros((len(probes), 3)) ri = [] row = 0 for probe in probes: print probe rr = [] for i in range(repeats): rtime = measure_exe_time(generate_gray_codes, 2 ** probe) ri.append(rtime) #ri.append(measure_exe_time(generate_gray_codes, probe)) rr.append(measure_exe_time(wdi, probe)) rmean = np.mean(rr) rmax = np.max(rr) rmin = np.min(rr) rec[row, :] = [rmean, rmax, rmin] imean = np.mean(ri) imax = np.max(ri) imin = np.min(ri) ite[row, :] = [imean, imax, imin] row += 1 p1, = plt.plot(probes, ite[:, 0]) p2, = plt.plot(probes, rec[:, 0]) plt.legend([p1, p2], ['Iterative', 'Recursive'], loc=2) plt.xlabel('Number of bits in code') plt.ylabel('Execution time [s]') plt.savefig('gray.png') plt.show()
def single_algo(gen): dd = np.zeros((len(b_param), len(probe_sizes))) #dd[0, :] = probe_sizes #dd[:, 0] = b_param #to fill algo = counting_sort nc = 0 bc = 0 for n in probe_sizes: bc = 0 for b in b_param: print 'n=', n, ' b=', b r = [] for xd in range(repeats): data = generate_random_sequence(n, max_val=b) perf = measure_exe_time(algo,data) r.append(perf) dd[bc, nc] = np.mean(r) bc += 1 nc += 1 '''probeIndex = 0 too_deep = False for probe in probe_sizes: if too_deep: break print 'Probe size ', probe, '(Index ', probeIndex, ')...' for row in range(1, repeats + 1): print 'Repeat ', row, '...' data = gen(probe) try: perf = measure_exe_time(algo, data) dd[row, probeIndex] = perf print perf except RuntimeError: dd[row, probeIndex] = 0 too_deep = True probeIndex += 1''' return dd
return int(raw_input()) if __name__ == '__main__': algo = menu_algo() size = menu_size() generator = menu_generator() algos = [counting_sort, QuickSort, QuickSortIterative, heap_sort, shell_sort] generators = [generate_ascending_sequence, generate_descending_sequence, generate_v_sequence, generate_random_sequence] seq = generators[generator](size) if size < 11: print "Sekwencja wejsciowa: ", seq perf = measure_exe_time(algos[algo], seq) if size < 11: print "Sekwencja wyjsciowa: ", seq print "Czas wykonania: ", perf print is_sorted_desc(seq) raw_input()