c# - Array.sort(或任何集合排序方法)是否取决于 C# 中单个项目的大小?

标签 c# .net arrays sorting collections

我们都知道数组的排序方法。速度受存储在数组中的项目数的影响。但是,速度会受到单个项目大小的影响吗? 我在网上搜索了这个,但没有找到令人信服的答案。有人有可以在此处显示的有用链接或解释吗?

例如,我们可以有一个数组存储 100 个字符串项,这些项的长度都是 20 个字符串字符。 100 个字符串项都是 30 个字符串字符,排序速度会有所不同吗?

谢谢

最佳答案

只要是引用类型,不,大小无关紧要。引用始终具有相同的大小,无论它指向的对象有多大,因此无论它们指向什么,交换两个引用都是常数时间。

编辑: 既然您细化了问题,显然找出排序顺序将花费更多时间,比较两个对象越复杂。如果您有 100 个字符串,每个字符串的前两个字符不同,那么对它们进行排序将比有 100 个字符串(每个字符串的 100 个字符都包含 98 个“a”并且仅在最后两个字符不同)更快。

一般来说,在您怀疑性能之前,请确保您确实遇到了问题。比较 100 个字符串对于今天的硬件来说是小菜一碟。

关于c# - Array.sort(或任何集合排序方法)是否取决于 C# 中单个项目的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22559540/

相关文章:

c# - 位图对象可以保存为PNG或JPEG文件格式吗

c# - 从另一个页面的代码隐藏中获取 ASP.Net 页面的 URL

c# - 使用单个 TransactionScope 包装大量数据库更新时出现异常

c# - 不同颜色的gridview数据显示取决于文本

Java:对象的封装和数组

JavaScript:对于 join() 方法中的空标记,数组反向和连接无法按预期工作

c# - win32 api 过时了吗?

python - IronPython与WPF编译exe pyc错误

.net - 什么是字节 [] 数组?

javascript - 数组对象循环中的问题 javascript