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")
: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)