算法-斐波那契数列的三种算法以及复杂度
斐波那契数列: f(n)=f(n-1)+f(n-2)(n>2) f(0)=1;f(1)=1; 即有名的兔子繁衍问题 在本篇文章我将会给出三种解法 递归(1)递归:函数自己调用自己&nbs...
递归面试题整理以及时间复杂度分析
递归具有很多的优点,它可以将一个大的问题划分为小的子问题,然后再逐步细分,达到解决问题的目的。递归的实现借用了栈桢的建立和销毁,所以它是很方便的。但是递归也有一些缺点,比如说,如果递归调用太深,栈桢消耗过大,就会出...
算法-时间复杂度为On的排序
问题:请实现一个排序算法,要求排序一个公司几万名员工的年龄,要求时间复杂度为O(n)。思路:要排序的序列元素数量比较大,不适合用传统的排序方法,但问题的要求是排序员工的年龄,也就是说,每个元素都在一个很小的范围之内(1-100)。又要求时间...
算法-包含min函数的栈
/* [包含min函数的栈] [题目] 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 [解析]...
算法-二叉树中和为某一值的路径
/* [二叉树中和为某一值的路径] [题目] 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 路径定...
算法-从上往下打印二叉树
/* [从上往下打印出二叉树的每个节点,同层节点从左至右打印。] [题目] 从上往下打印出二叉树的每个节点,同层节点从左至右打印。...
用实例给新手讲解RSA加密算法
图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年 RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对...
java算法之数组
1.数组定义 数组:是一种 线性数据结构,用 连续的内存空间,来存储 相同类型的数据 2.线性表与非线性表 线性表:数组、链表、队列、栈等 非线性表:二叉树、堆、图等...
java算法之快速排序算法
快速排序算法本质上是通过把一个数组划分为两个子数组,然后递归的调用自身为每一个子数组进行快速排序来实现的。 这里首先讲递归的快速排序算法。 1.递归的排序算法 public void recQuickSort(int l...
java算法之快速排序算法(优化)
之前有记录一版快速排序算法。 这里记录对它优化的一个版本。 之前快速排序一个缺点,就是使用递归算法对规模非常大的数据项进行排序可能会引起栈溢出,导致存储错误。 而且上面的代码的实现方式中, 对枢纽的不同的选择,会...