函数的递归 # 打印结果是1~999,限制递归次数,否则会把栈撑满 ## 递归的栗子 ## 总结 1、递归必须有一个明确的结束条件,不然死循环后,系统就报错了 2、每次进入新的一层递归时,问题规模需要相应减少 3、递归效率不高,过多递归层次会导致栈溢出 ...
分类:
编程语言 时间:
2019-01-17 01:16:00
阅读次数:
170
高阶函数:1. 函数名是一个变量,函数名可以进行赋值 2. 函数名可以作为函数参数,还可以作为函数返回值(函数名称作为函数返回值时返回的是:函数的地址;print 这个返回值的调用相当于执行这个函数。 函数调用作为函数返回值相当于返回这个函数的执行结果) 递归函数: 经典案例:斐波那切数列 内置函数 ...
分类:
编程语言 时间:
2019-01-12 00:23:27
阅读次数:
215
```python
# 栈 先进后出 例如蒸笼,弹夹,饭菜等
class StackFullException(Exception): """自定义一个栈溢出异常""" pass
class StackEmptyException(Exception): """自定义一个栈空出异常""" pass ... ...
分类:
编程语言 时间:
2019-01-03 21:44:47
阅读次数:
262
2 内存分配 系统蓝屏,很大原因都是系统自身代码有缺陷引起的,而系统代码缺陷很大程度上与内存分配不当有关。由于内存分配不当引起的堆栈溢出、缓冲区溢出等问题,常常会导致系统瘫痪甚至崩溃,所以理解内存分配对于一名合格的程序员而言非常有必要。 2.1 内存分配的形式有哪些? 一个C/C++编译的程序所占用 ...
分类:
编程语言 时间:
2018-12-29 18:32:10
阅读次数:
236
举例1: 获取J(1000000)的值 如果直接调用J(1000000),会导致堆栈溢出,改用lodash中_.memoize, 记忆上一次函数结果 代码: js const JJ = _.memoize((n) = n === 0 ? 1 : JJ(n 1) + 1); for (let i = ...
分类:
其他好文 时间:
2018-11-27 17:13:23
阅读次数:
346
一、如何选择合适的排序算法?1.排序算法一览表 时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是 归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数 ...
分类:
编程语言 时间:
2018-11-18 11:37:06
阅读次数:
365
一、递归调用定义 在函数内部,可以调用其他函数。 如果在调用一个函数的过程中直接或间接调用自身本身,则称为递归调用 从某种意义上来说,递归调用可以实现无限循环 二、递归调用的特性 必须有一个明确的结束条件 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 递归效率不高,递归层次过多会导致栈溢 ...
分类:
编程语言 时间:
2018-11-07 11:29:36
阅读次数:
179
说一说IO通信BIO通信:BIO即同步阻塞模式一请求一应答的通信模型,该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,服务端的线程个数和客户端并发访问数呈1:1的正比关系,由于线程是JAVA虚拟机非常宝贵的系统资源,当线程数膨胀之后,系统的性能将急剧下降,随着并发访问量的继续增大,系统会发生线程堆栈溢出、创建新线程失败等问题,并最终导致进程宕机或者僵死,不能对外提供服务。BIO的服
分类:
Web程序 时间:
2018-11-04 19:27:11
阅读次数:
240
原文地址:https://blog.csdn.net/lixiangminghate/article/details/53333710 正常情况下,函数栈分布图如下: 即,返回地址被改为一段缓存区的地址。当函数执行结束,从栈中取返回地址准备执行时,取到的是shellcode的地址,最终跳进shell ...
分类:
系统相关 时间:
2018-11-03 19:12:46
阅读次数:
665
递归调用,栈深度。 错误原因: java.lang.StackOverflowError 栈内存溢出 栈溢出 产生于递归调用,循环遍历是不会的,但是循环方法里面产生递归调用, 也会发生栈溢出。 解决办法:设置线程最大调用深度 -Xss5m 设置最大调用深度 小伙伴,玩个好玩的,最大默认深度: 结果: ...
分类:
其他好文 时间:
2018-10-30 01:00:05
阅读次数:
171