数据结构(二)关于空间的使用

数据结构(二)关于空间的使用

要点:解决问题的效率跟空间的利用效率有关

思考:如何空间的利用效率

01 如何空间的利用效率

参考:递归导致的栈溢出

java 复制代码
Exception in thread "main" java.lang.StackOverflowError

02 案例:输出比N小的正整数和N

1.循环打印

  • 一般的解决方式,直观的写法
java 复制代码
public static void printN1(int n) {
    for (int i = 1; i <= n; i++) {
        System.out.println(i);
    }
}

2.递归打印

  • 不断调用自身函数,把问题分成无数个小单元解决
java 复制代码
public static void printN2(int n) {
		while (n>0) {
			printN2(n-1);
			System.out.println(n);
			return;
		}
	}

二者对比

  • 在n为2万以下二者无差别
  • 但n大于2万后,递归算法会产生栈溢出导致程序终止

03 我的总结

  • 递归算法把问题划分成无数小单元,在一一解决,但对空间的占用是非常大的,当数据量变大就造成了程序的终止,这是非常危险的
相关推荐
xifangge202510 分钟前
【故障排查】IDEA 打开 Java 文件没有运行按钮(Run)?深度解析项目标识与环境配置的 3 大底层坑点
java·ide·intellij-idea
麻辣璐璐11 分钟前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓
hehelm13 分钟前
vector模拟实现
前端·javascript·算法
weisian15116 分钟前
Java并发编程--33-Redis分布式缓存三大核心架构:主从、哨兵、分片,落地实战与选型
java·redis·缓存·主从架构·哨兵架构·分片架构
APIshop26 分钟前
Python 爬虫获取京东商品详情 API 接口实战指南
java·服务器·数据库
wang090731 分钟前
Linux性能优化之内存管理基础知识
java·linux·性能优化
范什么特西44 分钟前
idea创建一个普通的Maven项目运行javaweb
java·maven·intellij-idea
好家伙VCC1 小时前
# 发散创新:用 Rust实现高性能物理引擎的底层架构设计与实战在游戏开发、虚拟仿真和机器人控
java·开发语言·python·rust·机器人
六道对穿肠1 小时前
Java 直连 USB 打印机实战:从 JNI 崩溃到「拷贝即用」的架构演进
java
user_admin_god1 小时前
OpenCode入门到入坑
java·人工智能·spring boot·语言模型