![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
--------【模板之类】
文章平均质量分 76
liuyanfeier
acmer
展开
-
各种排序算法的分析与实现
由于最近在找工作的过程中遇见了很多考察各种排序算法的问题,而我对此却不是非常熟悉,所以花了一些时间做了一个非常简单的总结。 一.直接插入排序(straight insertion sort) 直接插入排序算法是稳定的排序算法,时间复杂度为 O(n^2)。 思想为:假设待排序的数组存放在a[1...n]中,初始时,a[1]自成一个有序区,无序区为a[2...n]。从i=2到i=n原创 2016-04-11 13:42:16 · 910 阅读 · 0 评论 -
给定两个链表表示的整数,编写函数对这两个整数求和,并用链表形式返回结果。
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; ListNode* Reserve(ListNode* l) { if(l==NULL)return NULL; ListNode *p = NULL;原创 2016-06-03 15:09:20 · 5239 阅读 · 0 评论 -
大数加减乘除等的模板以及1000以内阶乘的模板
#include #include #include #include #include #include #include using namespace std; #define maxn 9999 #define maxsize 1000 #define dlen 4 class BigNum { private: int a[1005]; //可以控制大数的位数 int le原创 2016-05-20 16:07:32 · 545 阅读 · 0 评论 -
求解二叉树中两个节点的最近公共祖先(LCA)
/************************************************************************/ /* 非递归的方法 下面是一个简单的复杂度为 O(n) 的算法,解决LCA问题 1) 找到从根到n1的路径,并存储在一个向量或数组中。 2)找到从根到n2的路径,并存储在一个向量或数组中。 3) 遍历这两条路径,直到遇到一个不同的节点,则前面的原创 2016-05-10 21:44:55 · 1865 阅读 · 0 评论 -
根据前序遍历和中序遍历构建二叉树以及根据中序遍历后序遍历构建二叉树
/************************************************************************/ /* 算法说明: 由中序遍历序列可知,第一个节点是根节点, 由前序遍历序列可知,第一个节点是根节点的左子树节点,而且前序遍历中,根节点左边是左子树,右边是右子树,因此通过中序遍历的根节点可以确定的是: 根节点在前序遍历中的位置(通过遍历前序遍历原创 2016-05-10 21:07:12 · 982 阅读 · 0 评论 -
字符串的一些基本操作,复制,长度,子串查找,单词反转,比较,字符串反转,删除指定字符。
#include #include #include #include #include #include #include using namespace std; #define maxn 10005 //实现strSrc到strDest的复制 char *strCpy(char * strDest , char * strSrc) { if(strSrc==NULL||s原创 2016-04-12 17:30:07 · 791 阅读 · 0 评论 -
基础数论模版
欧拉函数值,小于n且与n互质的数的个数 #include #include #include #include using namespace std; const int maxn = 1000005; int p[maxn];//m[i]保存i的欧拉函数 int Eular(int n) { //求解单独一个数字的欧拉函数值 int ans=n;原创 2015-10-27 19:02:48 · 465 阅读 · 0 评论