#!/usr/bin/python import sys import time import random import binarysort import bubblesort import insertionsort def shuffle(lst): len_lst = len(lst) for index in xrange(len_lst): random_index = int(random.random() * len_lst) lst[index], lst[random_index] = lst[random_index], lst[index] def gibberish(n): return [ ('spam ' * 10, 'eggs ' * 10, 'spam ' * 10, i) for i in xrange(n) ] bad = False for i in xrange(1, 100): #for i in [ 10 ]: print i, sys.stdout.flush() original_list = gibberish(i) #print original_list list_ = original_list[:] shuffle(list_) t0 = time.time() list_from_insertionsort = list_[:] insertionsort.insertionsort(list_from_insertionsort, 0, len(list_) - 1) t1 = time.time() insertion_diff = t1 - t0 print insertion_diff, sys.stdout.flush() t0 = time.time() list_from_binarysort = list_[:] binarysort.binarysort(list_from_binarysort, 0, len(list_) - 1) t1 = time.time() binary_diff = t1 - t0 print binary_diff, sys.stdout.flush() t0 = time.time() list_from_bubblesort = list_[:] bubblesort.bubblesort(list_from_bubblesort, 0, len(list_) - 1) t1 = time.time() bubble_diff = t1 - t0 print bubble_diff sys.stdout.flush() #print original_list #print list_from_insertionsort if list_from_insertionsort != original_list: print 'insertion sort problem', i bad = True if list_from_binarysort != original_list: print 'binary sort problem', i bad = True if list_from_bubblesort != original_list: print 'bubble sort problem', i bad = True if bad: print 'sort problems' sys.exit(1)