算法&数据结构
少年我手写红黑树
穷则独善其身,达则兼济天下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最大子段和问题【思路及实现】
问题重述最大子段和问题,又称最大子序列和问题。问题描述如下:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。例如,当(a[1], a[...原创 2019-05-31 10:17:28 · 4311 阅读 · 7 评论 -
斐波那契数列(Fibonacci sequence)【思路及实现】
定义斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N...原创 2019-05-29 16:02:40 · 13693 阅读 · 13 评论 -
二分查找(Binary Search)【注意及实现】
概述二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。二分查找是一种十分基础的算法,利用分治思想,将原本需要线性时间复杂度的算法优化到了对数级。二分查找的思路简单,很好理解,但要正确的写出它的一个实现却并非易事的。这一点,在《程序员面试金典》以及《编程珠玑》等经典中都有提到。概括的...原创 2019-06-01 14:02:53 · 3839 阅读 · 0 评论 -
最大公约数(Greatest Common Divisor)【算法及实现】
概述最大公约数(Greatest Common Divisor),也称最大公因数、最大公因子。是指两个或多个整数公有因数中最大的一种。编程时常用 gcd(a, b) 表示两个数的最大公约数。相反的,将两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数(Least Common Multiple)。编程时候用 lcm(a, b) 表示两个数的最...原创 2019-06-15 23:07:30 · 8245 阅读 · 0 评论
分享