我有一个存储在数据库中的一对变量及其相关值的列表。
var1 var2 corr
我的算法包括按降序(基于相关值)对列表进行排序,然后检索前k对。
这个算法的时间复杂度是多少?这取决于我如何分类吗我正在使用ORDERBY子句使用SQL查询对列表进行排序。
最佳答案
这个评论太长了。
SQL数据库管理多级内存——基本上是内存中的数据页和磁盘上的存储。传统的复杂性度量不能很好地捕获SQL查询的性能特征。为此,您需要了解执行计划、底层算法和相对于可用资源的数据大小。
我的下一个反应是:如果你需要对数据进行排序,那么就对数据进行排序。时间复杂度与它有什么关系?也就是说,你还有别的选择吗?
一般来说,在数据库中实现的类将具有O(n log(n))复杂度。然而,实际速度在很大程度上取决于其他因素。列上的索引降低了复杂性。适合内存的数据速度更快。适合一页的数据可能更快。
我不知道你所说的“这取决于我如何分类吗?”。在SQL中,使用order by
子句表示排序只有一种方法,而且没有很多选项按asc
与desc
排序对性能应该没有影响或影响最小。
关于sql - 以降序对列表进行排序的时间复杂度。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25066008/