在线排序算法和外部排序算法有啥区别?
Posted
技术标签:
【中文标题】在线排序算法和外部排序算法有啥区别?【英文标题】:What is the difference between an online sorting algorithm and an external sorting algorithm?在线排序算法和外部排序算法有什么区别? 【发布时间】:2015-10-25 23:11:20 【问题描述】:在线排序算法和外部排序算法有什么区别?它们是相同的还是不同的?
【问题讨论】:
您在什么情况下遇到online sorting
。我知道external sorting
这个词,但online
在我看来就像inline
...
@RCH en.wikipedia.org/wiki/Category:Online_sorts
@toothbrush 啊,谢谢。使用 wiki 链接的@user2698544 和external sorting
的第一个谷歌点击应该显示出显着差异。
正如@RHC 所说,尝试在线搜索。请参阅en.wikipedia.org/wiki/Online_algorithm 开始
【参考方案1】:
在线排序算法是这样一种算法,如果要排序的元素一次提供一个,并且理解算法必须随着越来越多的元素添加到其中,那么该算法必须保持序列排序。 . 假设将预先给出整个输入的算法,例如堆排序,将不能作为在线算法工作,因为它们假设他们预先知道所有元素。另一方面,像插入排序这样的算法是在线的,因为它纯粹是从左到右工作,在它尝试处理最后一个元素之前不需要查看整个数组。
外部排序算法是一种目标是对通常预先提供的数据进行排序的算法,该算法太大以至于无法放入主内存中。虽然外部排序算法通常不会一次将所有要排序的数据保存在内存中,但它们通常假设可以随时将所需的任何数据加载到内存中。
考虑差异的一个好方法是,在在线排序算法中,您应该假设您正在尝试对动态生成的序列进行排序 - 在排序开始之前并非所有数据都存在。在外部排序算法中,所有数据都已经存在,但数据太多,您无法一次将所有数据加载到内存中。
希望这会有所帮助!
【讨论】:
以上是关于在线排序算法和外部排序算法有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章