程序员必知之浮点数运算原理详解
导读:浮点数运算是一个非常有技术含量的话题,不太容易掌握。许多程序员都不清楚使用==操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华,所...
导读:浮点数运算是一个非常有技术含量的话题,不太容易掌握。许多程序员都不清楚使用==操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华,所...
有趣的位运算 计算机的终极程序其实只有0和1,转化成集成电路的低电压和高电压来进行存储和运算。如果你是计算机相关专业出身或者是一名软件开发人员即使不对计算机体系结构如数家珍,至少也要达到能够熟练使用位运算的水平,要不然还是称为代码搬运工...
动态规划(dynamic programming)主要解决的问题:多阶段决策过程最优化, 其主要的思想是将最优化决策过程分为若干个互相联系的阶段,每个阶段需要作出一个决策,并且当前阶段的决策会影响下一阶段的决策,从而影响到整个过程的活动...
(一)二叉树的层次遍历 二叉树的层序遍历(也叫广度优先遍历)的要求是:按二叉树的层序次序(即从根结点层至叶结点层),同一层中按先左子树再右子树的次序遍历二叉树。 层次遍历的特点是,在所有未被访问结点的集合中,排列在已访问结点集合中最...
(一)二叉树的重建 二叉树是非线性结构,每个结点会有零个、一个或两个孩子结点,一个二叉树的遍历序列不能决定一棵二叉树,但某些不同的遍历序列组合可以惟一确定一棵二叉树。 可以证明,给定一棵二叉树的前序遍历序列和中序遍历序列可以惟一确定...
(一)快速排序 第一步:选择轴值,选择策略 第二步:将待排序序列划分为两个子序列l和r,使得l中的所有记录都小于等于轴值,而r中的所有记录都大于轴值,也就是关键的划分算法。 第三步:对子序列l和r递归快速排序。 class solution...
主宰全球的十大算法: 归并排序、快速排序、堆排序 傅立叶变换和快速傅立叶变换 迪杰斯特拉算法(dijkstra’s algorithm) rsa非对称加密算法 哈希安全算法(secure hash algorithm) 整数质因子分解算法(...
一、线索二叉树的原理 通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n 1个。如下图所示。 因此,提出了一种方法,利...
题目: 数组中的数分为两组,给出一个算法,使得两个组的和的差的绝对值最小数组中的数的取值范围是0
1.双指针算法思路 两个变量,一个left数组的最左边位置下标,right最右边位置下标,left ,right–,直到相遇 2. 例题逆序字符串中的数字 #include