什么是时间复杂度和空间复杂度?
什么是时间复杂度和空间复杂度?[*] 时间复杂度:衡量代码运行时间随输入规模增大而增长的速度。简单来说,就是“代码跑多快”。
[*] 空间复杂度:衡量代码运行时额外占用的内存空间随输入规模增大而增长的速度。简单来说,就是“代码用多少内存”。
我们通常用 大 O 表示法(Big O Notation)来形貌它们,如 O(1)、O(n)、O(n²) 等。
<hr> 常用时间复杂度及其示例
1. O(1) - 常数时间
[*] 含义:运行时间不随输入规模变革,固定时间完成。
[*] 示例:访问数组的第一个元素。
public int getFirst(int[] array) {
return array; // 只执行一次操作
}
2. O(log n) - 对数时间
[*] 含义:运行时间随输入规模迟钝增长,每次操纵将问题规模明显缩小。
[*] 示例:二分查找。
public int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while (left <= right) { // 每次循环规模减半
int mid = left + (right - left) / 2;
if (array == target) return mid;
else if (array < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
3. O(n) - 线性时间
[*] 含义:运行时间与输入规模成正比。
[*] 示例:遍历数组并打印每个元素。
public void printArray(int[] array) {
for (int i = 0; i < array.length; i++) { // 循环 n 次
System.out.println(array);
}
}
4. O(n log n) - 线性对数时间
[*] 含义<
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]