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

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

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

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

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

  • 递归算法把问题划分成无数小单元,在一一解决,但对空间的占用是非常大的,当数据量变大就造成了程序的终止,这是非常危险的
相关推荐
学长毕设12 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
Js.Tx13 小时前
【具体数学 Concrete Mathematics】2.1.5 一般性的方法
算法·具体数学
金銀銅鐵13 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计
艾伦_耶格宇14 小时前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
秋天的怀念_David14 小时前
算法一千零一夜 · 作品相关:版权与致谢声明
程序人生·算法·学习方法
图灵-M14 小时前
【数据结构】静态 & 动态顺序表
c语言·数据结构·笔记
2301_7807896614 小时前
深度伪造即服务:新型网络诈骗的“完美面具”与识别之道
java·网络·ddos
LHICOD14 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
香蕉大香蕉(06敬畏市场)14 小时前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
揽星河..14 小时前
【C语言】数组
c语言·开发语言·算法