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

打印 上一主题 下一主题

主题 1274|帖子 1274|积分 3822

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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



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

  • 空间复杂度:衡量代码运行时额外占用的内存空间随输入规模增大而增长的速度。简单来说,就是“代码用多少内存”。
我们通常用 大 O 表示法(Big O Notation)来形貌它们,如 O(1)、O(n)、O(n²) 等。
<hr> 常用时间复杂度及其示例

1. O(1) - 常数时间



  • 含义:运行时间不随输入规模变革,固定时间完成。

  • 示例:访问数组的第一个元素。
    1. public int getFirst(int[] array) {
    2.     return array[0]; // 只执行一次操作
    3. }
    复制代码
2. O(log n) - 对数时间



  • 含义:运行时间随输入规模迟钝增长,每次操纵将问题规模明显缩小。

  • 示例:二分查找。
    1. public int binarySearch(int[] array, int target) {
    2.     int left = 0;
    3.     int right = array.length - 1;
    4.     while (left <= right) { // 每次循环规模减半
    5.         int mid = left + (right - left) / 2;
    6.         if (array[mid] == target) return mid;
    7.         else if (array[mid] < target) left = mid + 1;
    8.         else right = mid - 1;
    9.     }
    10.     return -1;
    11. }
    复制代码
3. O(n) - 线性时间



  • 含义:运行时间与输入规模成正比。

  • 示例:遍历数组并打印每个元素。
    1. public void printArray(int[] array) {
    2.     for (int i = 0; i < array.length; i++) { // 循环 n 次
    3.         System.out.println(array[i]);
    4.     }
    5. }
    复制代码
4. O(n log n) - 线性对数时间



  • 含义<

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表