我有一个接收数据的缓冲区,这意味着数据就像'stream',并且在'IO'中有延迟.我现在的做法是当缓冲区已满时,使用qsort对缓冲区进行排序并将结果写入磁盘.但是在进行qsort时有明显的延迟,所以我正在寻找一些其他排序算法,这些算法可能会在数据被添加到缓冲区时开始排序,以减少整体消耗的时间.
不知道我是否已经明确表示并在必要时留下任何评论,谢谢
堆排序使数据永久保持在部分排序状态,因此与插入排序相当.但它的速度要快得多,并且与插入排序的O(n 2)相比,最差的情况是O(n log n).
这怎么样?大概在某些时候你必须停止从流中读取,存储你已经排序的内容,并开始阅读一组新的数据?