基础算法
进击的夸克
不想再佛系的青年
展开
-
斐波那契数列——矩阵快速幂解法
#include <iostream> #include <algorithm> using namespace std; typedef long long ll; const ll mod = 1000000007; struct Matrix { ll num[2][2]; void initial() { num[0][0] ...原创 2020-03-22 22:18:33 · 214 阅读 · 0 评论 -
算符优先文法——中缀表达式转换为后缀表达式并求值
算符优先文法——中缀表达式转换为后缀表达式并求值 根据编译原理相关知识,我们可将整个程序分为三个部分,词法分析,文法分析,后缀表达式计算,在文法分析中会涉及到运算符优先级的判断。接下来我将分模块对代码进行解释,希望可以对读者理解算符优先文法、词法分析有和后缀表达式求值有所帮助。 代码可以识别包含括号的基本四则运算和乘方运算,可以识别浮点数,未进行错误运算时的错误处理。 运算符优先级 如数组sp所示...原创 2020-03-08 23:15:10 · 1111 阅读 · 0 评论 -
Sorting
Sorting#define MAXN 1005 //数组最大长度 int num[MAXN]; //待排序数组 int n; //数组中元素个数Insertion Sort直接插入排序//设置哨兵num[0], 为在查找插入位置的过程中避免数组下标越界 void InsertSort() { int i, j; for (i = 2; i <= n; i++)原创 2017-12-28 10:33:15 · 254 阅读 · 0 评论 -
Leetcode 67. 使用栈和全加器实现二进制求和(JAVA)
使用栈和全加器实现二进制求和(JAVA) 使用栈实现输入二进制串反序,使用加法器实现每一位求和 加法器核心代码: s = a ^ b ^ c; //求和结果 c = (a &amp;amp;amp; b) | (a &amp;amp;amp; c) | (b &amp;amp;amp; c); //进位 题目: Leetcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例...原创 2018-11-10 22:21:37 · 393 阅读 · 0 评论