按降序排序列表的时间复杂度。

时间:2014-07-31 18:07:19

标签: sql algorithm sorting time-complexity

我有一对变量列表及其存储在数据库中的相关值。

var1  var2  corr  

我的算法涉及按降序对列表进行排序(基于相关值),然后检索前k个对。

这个算法的时间复杂度是多少?这取决于我如何排序吗?我使用ORDER BY子句使用sql查询对列表进行排序。

1 个答案:

答案 0 :(得分:3)

评论太长了。

SQL数据库管理多级内存 - 基本上是内存中的数据页和磁盘上的存储。传统的复杂度测量方法并不能很好地捕获SQL查询的性能特征。为此,您需要了解执行计划,基础算法以及与可用资源相关的数据大小。

我的下一步反应是:如果您需要对数据进行排序,请对数据进行排序。时间复杂度与它有什么关系?也就是说,你还有其他什么选择?

通常,在数据库中实现的排序将具有O(n log(n))复杂度。但是,实际速度在很大程度上取决于其他因素。列上的索引降低了复杂性。适合内存的数据更快。适合单个页面的数据可能会更快。

我不确定你的意思是“这取决于我如何分类它?”。使用order by子句,只有一种方法可以在SQL中表达排序,并且它没有很多选项。按ascdesc排序对性能的影响不大或影响最小。