梦应逍遥 发表于 2025-4-16 10:52:43

什么是时间复杂度和空间复杂度?

什么是时间复杂度和空间复杂度?



[*] 时间复杂度:衡量代码运行时间随输入规模增大而增长的速度。简单来说,就是“代码跑多快”。

[*] 空间复杂度:衡量代码运行时额外占用的内存空间随输入规模增大而增长的速度。简单来说,就是“代码用多少内存”。
我们通常用 大 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]
查看完整版本: 什么是时间复杂度和空间复杂度?