并行排序是一种通过同时处理多个元素来提高排序性能的方法。下面是一个使用并行排序的示例代码:
import random
import multiprocessing
# 生成随机数列表
random_numbers = [random.randint(1, 100) for _ in range(10000)]
# 定义并行排序函数
def parallel_sort(numbers):
# 拆分列表为多个子列表
num_cores = multiprocessing.cpu_count()
chunk_size = len(numbers) // num_cores
chunks = [numbers[i:i+chunk_size] for i in range(0, len(numbers), chunk_size)]
# 启动并行排序任务
pool = multiprocessing.Pool(processes=num_cores)
sorted_chunks = pool.map(sorted, chunks)
# 合并排序结果
sorted_numbers = []
for chunk in sorted_chunks:
sorted_numbers.extend(chunk)
# 最后对整个列表进行一次排序
sorted_numbers = sorted(sorted_numbers)
return sorted_numbers
# 调用并行排序函数
sorted_numbers = parallel_sort(random_numbers)
print(sorted_numbers)
上述代码中,首先使用random
模块生成了一个包含10000个随机数的列表。然后,定义了一个parallel_sort
函数,该函数将列表拆分为多个子列表,并使用multiprocessing.Pool
创建了一个进程池,其中每个进程都会对子列表进行排序。最后,将排序后的子列表合并,并对整个列表进行一次排序。
通过使用并行排序,可以充分利用多核处理器的优势,以并行的方式对列表进行排序,从而提高排序性能。
上一篇:并行排序O(log n)