在线排序算法和外部排序算法有什么区别?

时间:2015-08-03 18:22:49

标签: algorithm sorting external-sorting online-algorithm

在线排序算法外部排序算法之间有什么区别?它们是相同还是不同?

1 个答案:

答案 0 :(得分:4)

在线排序算法是一个可以工作的,如果要一次提供一个要排序的元素,并且理解算法必须保持序列排序随着越来越多的元素被添加到假设预先给出整个输入的算法,例如heapsort,将不能用作在线算法,因为他们假定他们事先知道所有元素。另一方面,像插入排序这样的算法是在线的,因为它纯粹从左到右工作,并且在它尝试处理最后一个元素之前不需要查看整个数组。

外部排序算法的目标是对数据进行排序(通常是提前提供的),该数据非常大,无法容纳到主内存中。虽然外部排序算法通常不会立即将所有数据保存在内存中,但他们通常认为他们可以随时将所需的任何数据加载到内存中。

一种考虑差异的好方法是,在在线排序算法中,您应该假设您正在尝试对动态生成的序列进行排序 - 而不是在排序开始之前存在所有数据。在外部排序算法中,所有数据都已存在,但是有很多数据无法一次将所有数据加载到内存中。

希望这有帮助!