|
|
1
1
简单的答案按索引查找数组中的值是O(1)。 在中搜索值 未排序的数组 为O(n)。
Big O notation数组是计算机编程中的一种抽象数据结构。在讨论抽象数据结构的大O表示法时,我们要问的是:在给定任意数量的元素的情况下,将算法应用于抽象数据结构需要多长时间。换句话说:作为抽象结构中数据的函数,您的算法有多快。
Swift上下文这不是 Machine Code 。Swift是 high-level programming language 。这意味着Swift代码本身就是对其运行的计算机内部细节的抽象。因此,当我们在Swift中讨论数组的大O表示法时,我们并没有真正讨论它是如何存储在内存中的,因为我们假设它存储在内存中的方式是 Array data structure 。我认为理解这一点很重要,这也是为什么 Ruby 将比中的阵列慢 C 例如,因为一种语言是其运行的计算机的更大抽象。我们现在可以向前看了,知道在Swift数组的上下文中关于Big O的讨论确实受到其在计算机中的底层实现的影响,但在使用Big O时,我们仍然指的是实例化数组的完美版本。
在未排序的数组中搜索值为O(n)|2 | 6 | 10 | 0|
上面的文字是包含4个元素的数组的视觉表示。
|2 | 6 | 10 | 0| Swift中为:
我是一个写Swift的电脑程序员,而你就是电脑。
让我们把它变得更一般。假设我们不知道数组中有什么,我们给它起了个名字怎么样
我们书的页数是n 。 在最坏的情况下,无论我们是否找到感叹号,我们都必须至少看一次书中的每一页,直到找到包含! O(n)
在一个示例中综合所有内容
我希望这有帮助! |
|
|
2
0
这是我能找到的最好的答案
一
|
|
|
Tom · SwiftUI.sheet导致背景白色闪烁 1 年前 |
|
|
Danil · 种子/填充核心数据的最佳实践?[关闭] 1 年前 |
|
|
Robin · LazyVGrid项目预计不会击中测试区域 1 年前 |
|
|
Saurabh Saini · 结构下标 1 年前 |
|
|
Alex Smith · 移动到下一个视图控制器后如何显示警报? 1 年前 |