![]()
海量数据排序,并且内存足够大。一般来说,合并排序会更好,因为读取次数会减少,但是如果存储空间不足,自然会减少次数,因此也可以使用快速排序。

对于大数据和大内存,您可以根据执行数据挖掘的读取次数进行选择。在数据挖掘理论中,读取次数越少,消除方法越快。

这里有一个问题:假设您只有100Mb的内存,则需要对1Gb数据进行排序:

首先,内存仅为100Mb,但数据为1Gb,因此绝对不可能一次将其放入内存中进行排序。您只能使用外部排序,而外部排序通常使用多个合并排序,也就是说,原始文件分为多个部分,可以一次将其加载到内存中(例如此处为100Mb),分别传输每个部分进入内存以完成排序(根据情况选择适当的内部行算法),然后对排序后的子文件(胜利树或失败者树)执行多路合并排序。

外部排序是指对大文件的排序,即将要排序的记录存储在外部存储器中,不能将要排序的文件一次加载到内存中,并且之间进行多次数据交换。需要内存和外部存储器才能达到对整个文件进行排序的目的!
首先,由于内存足够大,所有数据都可以上传到内存,因此仅考虑内部排序。
对于所使用的内部排序,它与数据本身有关。如果数据足够混乱,则当然选择快速排序。如果数据本身具有特定顺序,则应考虑其他排序,例如Hill排序。并且由于数据本身非常大,因此建议使用链接列表而不是数组存储。 (尽管内存足够大)。
还有:海量数据和足够的内存,这显然是两个矛盾的条件! ! !
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-313795-1.html
让这帮家伙丢丢丑
当时买养老金就好了