Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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)