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

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

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

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

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

  • 递归算法把问题划分成无数小单元,在一一解决,但对空间的占用是非常大的,当数据量变大就造成了程序的终止,这是非常危险的
相关推荐
IAUTOMOBILE11 分钟前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
hutengyi11 分钟前
PostgreSQL版本选择
java
皮皮林55117 分钟前
重磅!JetBrains 正式发布全新的 AI 开发工具,定名 AI IDE AIR
java·intellij idea
MX_935930 分钟前
SpringMVC请求参数
java·后端·spring·servlet·apache
ID_1800790547336 分钟前
小红书笔记评论 API,Python 调用示例与完整 JSON 返回参考
java·开发语言
Fuxiao___39 分钟前
C 语言核心知识点讲义(循环 + 函数篇)
算法·c#
lifewange40 分钟前
java连接Mysql数据库
java·数据库·mysql
漫随流水1 小时前
c++编程:反转字符串(leetcode344)
数据结构·c++·算法
云原生指北1 小时前
命令行四件套:fd-rg-fzf-bat
java·大数据·elasticsearch
人间打气筒(Ada)2 小时前
go实战案例:如何通过 Service Meh 实现熔断和限流
java·开发语言·golang·web·istio·service mesh·熔断限流