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

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

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

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

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 我的总结

  • 递归算法把问题划分成无数小单元,在一一解决,但对空间的占用是非常大的,当数据量变大就造成了程序的终止,这是非常危险的
相关推荐
mldong3 小时前
给若依加审批流,不用 Flowable
java·spring boot·架构
Wang's Blog5 小时前
Java框架快速入门: Spring Security+OAuth2之数据库和实体类的RBAC改造
java·数据库·spring
Niuguangshuo5 小时前
论文解读:CTC,端到端序列识别的开山之作
算法·语音识别
讳疾忌医丶5 小时前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
郑州光合科技余经理6 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
毅炼6 小时前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
高亦真6 小时前
今天是学习嵌入式的第37天
linux·学习·算法
梦想平凡6 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
不会就选b6 小时前
数据结构之排序
数据结构
罗西的思考7 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 --- (2)--- 训练
人工智能·算法·机器学习