在线排序算法和外部排序算法有什么区别?它们是相同的还是不同的?
问问题
1652 次
1 回答
6
在线排序算法是这样一种算法,如果一次提供一个要排序的元素,并且理解算法必须随着越来越多的元素添加而保持序列排序。假设整个输入将是的算法预先给定的,例如堆排序,不会像在线算法那样工作,因为它们假定他们事先知道所有元素。另一方面,像插入排序这样的算法是在线的,因为它纯粹是从左到右工作,并且在它尝试处理最后一个元素之前不需要查看整个数组。
外部排序算法是一种目标是对数据进行排序的算法,通常是提前提供的,数据太大以至于无法放入主存储器。虽然外部排序算法通常不会一次将所有要排序的数据保存在内存中,但它们通常假设它们可以随时将所需的任何数据加载到内存中。
考虑差异的一个好方法是,在在线排序算法中,您应该假设您正在尝试对动态生成的序列进行排序 - 并非所有数据都在排序开始之前存在。在外部排序算法中,所有数据都已经存在,但是数据太多以至于您无法一次将所有数据加载到内存中。
希望这可以帮助!
于 2015-08-03T21:43:57.640 回答