python实现归并排序并生成长度为200000的随机数组测试运行时间 import random import time def merge(a, b): c = [] h = j = 0 while j < len(a) and h < len(b): if a[j] < b[h]: c.append(a[j]) j += 1 else: c.append(b[h]) h += 1 if j == len(a): for i in b[h:]: c.append(i) else: for i in a[j:]: c.append(i) return c def merge_sort(lists): if len(lists) <= 1: return lists middle = len(lists)//2 left = merge_sort(lists[:middle]) right = merge_sort(lists[middle:]) return merge(left, right) def random_int_list(start, stop, length): start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start)) length = int(abs(length)) if length else 0 random_list = [] for i in range(length): random_list.append(random.randint(start, stop)) return random_list if __name__ == '__main__': start = time.perf_counter() a = random_int_list(1, 10000000, 200000) print(a) print(merge_sort(a)) end = time.perf_counter() print('final is in', end-start)
归并排序python实现
最新推荐文章于 2024-09-18 20:39:31 发布