def Strand_Sort(input_list):
    output_list = list()

    while len(input_list) > 0:
        sub_list = [input_list.pop(0)]
        pos = 0

        while pos < len(input_list):
            if input_list[pos] > sub_list[-1]:
                sub_list.append(input_list.pop(pos))
            else:
                pos += 1

        temp_list = output_list + sub_list  ## For calling the module
        output_list = Merge_Sort.merge(temp_list, output_list,
                                       sub_list)  ## Module

    return output_list
f2 = f1.copy()
f3 = f1.copy()
f4 = f1.copy()
f5 = f1.copy()
f6 = f1.copy()
f7 = f1.copy()
f8 = f1.copy()
f9 = f1.copy()
f10 = f1.copy()

#print("Random array\n",f1,"\n")
t = timeit.Timer(lambda: Python_Sort.python_sort(f1))
print("Python sort ", t.timeit(number=1))
#print(f1,"\n")

t = timeit.Timer(lambda: Merge_Sort.merge_sort(f2))
print("Merge sort", t.timeit(number=1))
#print(f2,"\n")

t = timeit.Timer(lambda: Comb_Sort.comb(f3))
print("Comb sort ", t.timeit(number=1))
#print(f3,"\n")

t = timeit.Timer(lambda: Heap_Sort.heapSort(f4))
print("Heap sort ", t.timeit(number=1))
#print(f4,"\n")

t = timeit.Timer(lambda: Quick_Sort.quick_sort(f5))
print("Quick sort ", t.timeit(number=1))
#print(f5,"\n")
예제 #3
0
    :param function: 需要计时的函数
    :return: None
    '''
    @wraps(function)
    def function_timer(*args, **kwargs):
        print('[Function: {name} start...]'.format(name=function.__name__))
        t0 = time.time()
        result = function(*args, **kwargs)
        t1 = time.time()
        print('[Function: {name} finished, spent time: {time:.2f}s]'.format(
            name=function.__name__, time=t1 - t0))
        return result


if __name__ == '__main__':
    A = np.random.randint(1, 10000, [5000]).tolist()
    bubble_sort.bubble(A)
    Insertion_Sort.insertion_sort(A)
    Choice_Sort.choice_sort(A)

    start = time.time()
    Merge_Sort.merge_sort(A)
    end = time.time()
    print(A)
    print(end - start)
    print()

    Shell_Sort.shell_sort(A)
    # Heap_sort.heap_sort(A)

    Quick_sort.quick_sort(A)