在线排序算法和外部排序算法有什么区别?他们是一样的还是不同的?
发布于 2015-08-03 21:43:57
在线排序算法是一种在线排序算法,如果每次提供一个要排序的元素,则该算法必须在添加越来越多的元素时保持排序。假设整个输入都提前给出的算法(如堆排序)不会像在线算法那样工作,因为它们假定预先知道所有的元素。另一方面,像插入排序这样的算法是在线的,因为它完全从左到右工作,在尝试处理最后一个元素之前,它不需要看到整个数组。
外部排序算法的目标是对数据进行排序(通常是预先提供的),这种排序算法太大,无法进入主内存。虽然外部排序算法通常不会将所有数据同时存储在内存中,但它们通常假设可以在任何时候将需要的任何数据加载到内存中。
考虑这种差异的一个好方法是,在在线排序算法中,您应该假设您试图对动态生成的序列进行排序--并不是所有的数据都存在于排序开始之前。在外部排序算法中,所有的数据都已经存在,但是数据太多了,所以不能一次性将所有数据加载到内存中。
希望这能有所帮助!
https://stackoverflow.com/questions/31794171
复制相似问题