コード例 #1
0
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
コード例 #2
0
ファイル: xd.py プロジェクト: Xevaquor/PUT-Poznan-Informatyka
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)
コード例 #3
0
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
コード例 #4
0
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()
コード例 #5
0
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
コード例 #6
0
	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()