gpt4 book ai didi

c - 最快的多线程排序方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:00 31 4
gpt4 key购买 nike

目前,我正在创建一个多线程排序器,它读取一堆 CSV 文件并输出一个大型排序 CSV 文件,其中包含 CSV 文件中的所有数据。现在,我正计划使用 mergesort 对每个 CSV 在各自的线程中进行排序,然后在线程中的所有数据连接在一起时最后一次对其进行排序。我只是好奇是否只使用 mergesort 会被认为是“快速”。在线程将已排序的数据连接在一起之后,数据在其各自的部分中进行了排序,但总体而言,它仍未排序。

最佳答案

在我进行多线程自下而上合并排序之前,我认为合并排序由于合并函数中相对紧密的循环而受内存限制。使用 4 个线程时,它的速度大约是单线程归并排序的 3 倍。在这个例子中,数组被分成 4 个部分,每个部分都进行合并排序,然后线程 0 合并四分之一数组 0 和 1,线程 2 合并四分之一数组 2 和 3,然后线程 0 合并两个半数组。

https://codereview.stackexchange.com/questions/148025/multithreaded-bottom-up-merge-sort

gnu 排序是一种文本文件排序,它在用于创建初始临时文件的第一遍中对指针数组进行多线程合并排序(假设原始文件大于可用内存)。在初始 channel 之后,它对临时文件进行单线程 16 路合并,因为瓶颈是磁盘 I/O 速度,而不是处理器速度。

关于c - 最快的多线程排序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47340794/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com