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

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】:

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

外部排序算法是一种目标是对通常预先提供的数据进行排序的算法,该算法太大以至于无法放入主内存中。虽然外部排序算法通常不会一次将所有要排序的数据保存在内存中,但它们通常假设可以随时将所需的任何数据加载到内存中。

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

希望这会有所帮助!

【讨论】:

以上是关于在线排序算法和外部排序算法有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

桶排序和基数排序有啥区别?

外部排序和外部合并的区别

有啥算法是相邻交换排序的(除了冒泡以外)

数据结构 | 考研八大内部排序算法

排序算法之一冒泡排序

python三级算法:排序——冒泡排序