def create_from_rand(numItems=10, start=0, allowDuplicates=True): r = util.generate_rand_list(numItems, start, allowDuplicates) tree = BST() for i in r: tree.insert(i) return tree
def main(): ONE_TEST = 1 if (ONE_TEST): print "DUTCH QUICK SORT:" inOutList = [11, 5, 4, 8, 2, 10, 3, 13, 14, 12, 1, 6, 15, 9, 7] iol2 = list(inOutList) print "Input : " + str(inOutList) dutch_quick_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) test_nth_largest(iol2) return #---------------------- # Nth Largest #---------------------- print "Nth Largest:" inOutList = [1,2,3,4,5,6,7,8] print inOutList for x in range(0, len(inOutList)): print "%d Largest:\t%d" % (x, nth_largest(inOutList, x)) inOutList = [8,7,6,5,4,3,2,1] print inOutList for x in range(0, len(inOutList)): print "%d Largest:\t%d" % (x, nth_largest(inOutList, x)) inOutList = util.generate_rand_list(15, allowDuplicates=False) print inOutList for x in range(0, len(inOutList)): print "%d Largest:\t%d" % (x, nth_largest(inOutList, x)) inOutList = util.generate_rand_list(15, allowDuplicates=True) print inOutList for x in range(0, len(inOutList)): print "%d Largest:\t%d" % (x, nth_largest(inOutList, x)) return #---------------------- # Quick Sort #---------------------- print "QUICK SORT:" inOutList = [11, 5, 4, 8, 2, 10, 3, 13, 14, 12, 1, 6, 15, 9, 7] #[1,3,5,7,2,4,6,8] print "Input : " + str(inOutList) quick_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) inOutList = util.generate_rand_list(15, allowDuplicates=False) print "Input : " + str(inOutList) quick_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) inOutList = util.generate_rand_list(15, allowDuplicates=True) print "Input : " + str(inOutList) quick_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) return #---------------------- # Merge Sort #---------------------- print "MERGE SORT:" inOutList = [1,3,5,7,2,4,6,8] print "Input : " + str(inOutList) merge_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) inOutList = util.generate_rand_list(15, allowDuplicates=True) print "Input : " + str(inOutList) merge_sort(inOutList, 0, len(inOutList)) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) print "\nBOTTOMUP MERGE SORT:" inOutList = [1,3,5,7,2,4,6,8] print "Input : " + str(inOutList) bottomup_merge_sort(inOutList) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) inOutList = util.generate_rand_list(15, allowDuplicates=True) print "Input : " + str(inOutList) bottomup_merge_sort(inOutList) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) inOutList = util.generate_rand_list(16, allowDuplicates=False) print "Input : " + str(inOutList) bottomup_merge_sort(inOutList) print "Output: " + str(inOutList) print "IS_SORTED: %r" % util.is_sorted(inOutList) return #---------------------- # Selection Sort #---------------------- print "\nSELECTION-SORT:" inOutList = [1,3,5,7,2,4,6] print "Input : " + str(inOutList) ns = selection_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) print "IS_SORTED: " % util.is_sorted(inOutList) inOutList = util.generate_rand_list(10) print "Input : " + str(inOutList) ns = selection_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) inOutList = util.generate_rand_list(10, 0, False) print "Input : " + str(inOutList) ns =selection_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) #---------------------- # Insertion Sort #---------------------- print "\nINSERTION-SORT:" inOutList = [1,3,5,7,2,4,6] print "Input : " + str(inOutList) ns = insertion_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) inOutList = util.generate_rand_list(10) print "Input : " + str(inOutList) ns = insertion_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) inOutList = util.generate_rand_list(10, 0, False) print "Input : " + str(inOutList) ns = insertion_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) #---------------------- # Shell Sort #---------------------- print "\nSHELL-SORT:" inOutList = [1,3,5,7,2,4,6] print "Input : " + str(inOutList) ns = shell_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) inOutList = util.generate_rand_list(10) print "Input : " + str(inOutList) ns = shell_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns) inOutList = util.generate_rand_list(10, 0, False) print "Input : " + str(inOutList) ns = shell_sort(inOutList) print "Output: %s --> %d" % (str(inOutList), ns)