算法
霸道总裁爱上网
这个作者很懒,什么都没留下…
展开
-
机器学习算法的随机数据生成
在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数。但是找到一组十分合适某种特定算法类型的数据样本却不那么容易。还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测。下面对scikit-learn和numpy生成数据样本的方法做一个总结。1. numpy随机数据生成API numpy比较适合用来生产一些简单的抽样数据。API都在random类中,...转载 2020-09-27 10:43:37 · 677 阅读 · 0 评论 -
递归交换链式二叉树的左右子树
void swap(BiTree b){ if(b) { swap(b->lchild); //递归交换左子树 swap(b->rchild); //递归交换右子树 BiTNode *temp = b->lchild; //交换左右结点 b->lchild = b->rchild; b->rchild = temp; }}王道数...原创 2019-12-09 11:12:09 · 288 阅读 · 0 评论 -
单链表逆置
将带头结点的单链表逆置,空间复杂度O(1),即不产生新链表LinkList Rev(LinkList L)//将链表所有元素逆置{ LNode *p, *r; p = L->next; //p保存了L头结点后的所有元素 L->next = NULL; //先将L置空 while (p) { r = p->next; //暂存p的后继 p->next =...原创 2019-11-19 21:51:43 · 202 阅读 · 0 评论 -
Prim算法和Kruskal算法求最小生成树的不同
Prim算法我是这样记住的我有个friend叫卜睿,胖胖的,让我联想到他很能吃,边上只要有能拿到的东西,就往嘴里塞,吃下去的东西就成自己的了,慢慢的越来越胖。。。//卜睿????看到别打我就是在自己点集合内,找连向外部点集合的最短边//直到全部点都是你的Kruskal算法就是另一种啦这个算法就从图中找最短边,又同时保证不能扯出回路//over...原创 2019-11-01 16:50:24 · 1065 阅读 · 0 评论 -
Dijkstra算法求单源最短路径
Dijkstra算法只能求某一个点到其他所有点的最短路径,所以叫单源最短路径int min(int a, int b){ return a > b ? b : a;}void Dijkstra(int SP){ int n;//总共n个点 int dis[MaxSize];//起始点SP到其他点的距离 int map[MaxSize][MaxSize];//图中各点间的路径...原创 2019-10-30 20:50:13 · 271 阅读 · 0 评论 -
深度优先搜索DFS
递归代码如下bool visited[MaxSize];void visit(int v); //泛指对v操作的函数,未初始化void DFS(Graph G, int v){ visit(v);//访问点v visited[v] = true;//标记v点已经访问 for (int w = FirstNeighbor(G, v); w >= 0; w = NextNeighb...原创 2019-10-29 21:09:48 · 159 阅读 · 0 评论 -
广度优先搜索BFS
代码如下bool visited[MaxSize]; //标记数组SqQueue Q; //声明图Q,未实际输入void visit(int v); //泛指对v操作的函数void BFS(Graph G, int v){ visit(v); visited[v] = true; //对v做已标记访问 EnQueue(Q, v); //顶点v入队 while (!isEmpty(...原创 2019-10-29 21:01:10 · 166 阅读 · 0 评论 -
Floyd算法求各顶点最短路径
Floyd算法求各顶点最短路径for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) for(int k = 1; k<=n; k++ if (map[i][j] > map[i][k] + map[k][j]) //在Vi与Vj之间,先走点Vk的距离比原来Vi直接到Vj的距离要短 map...原创 2019-10-29 20:24:32 · 225 阅读 · 0 评论 -
以先序序列输出一棵二叉树中的所有结点的数据值及结点所在层次
先序序列输出二叉树所有结点,及结点所在层次void PreAndLevel(BiTree T, int i) //以先序序列输出一棵二叉树中的所有结点的数据值及结点所在层次{ //第一次调用为PreAndLevel(T, 1); if (T != NULL) { printf("data=%d,level=%d", T->data, i); PreAndLevel(T-&g...原创 2019-10-23 22:03:38 · 8324 阅读 · 9 评论 -
交换二叉树中每个结点的两个子女
交换子女void Exc(BiTree T) //交换二叉树中每个结点的两个子女{ if (T->lchild != NULL) Exc(T->lchild); if (T->rchild != NULL) Exc(T->rchild); BiTNode *p; p = T->lchild; T->lchild = T->rchild...原创 2019-10-23 22:02:06 · 1820 阅读 · 0 评论 -
计算二叉树中各结点的最大元素的值
求所有结点的最大值int Get_Max(BiTree T) //计算二叉树中各结点中的最大元素的值{ if (T == NULL) return 0; int maxl = Get_Max(T->lchild); int maxr = Get_Max(T->rchild); int max = maxl > maxr ? maxl : maxr; //max为m...原创 2019-10-23 22:00:02 · 8790 阅读 · 4 评论 -
计算指定结点*p所在的层次
求指定结点的层次int GetLevel(BiTree T, BiTNode *p) //计算指定结点*p所在的层次{ if (T == NULL) return 0; if (T == p) return 1; //找到所在层,第一层 int depl = GetLevel(T->lchild, p); int depr = GetLevel(T->rchild...原创 2019-10-23 21:58:42 · 4645 阅读 · 3 评论 -
从二叉树中删去所有叶结点
删除所有叶子结点void Del_0(BiTree T) //删除叶子结点{ BiTNode *p = T; if (p == NULL) return; else if (p->lchild == NULL && p->rchild == NULL) free(p); Del_0(T->lchild); Del_0(T->rchild...原创 2019-10-23 21:53:49 · 8713 阅读 · 28 评论 -
统计二叉树的宽度
求二叉树每一层的宽度void LevelWidth(BiTree T, int a[], int h) //求每一层的宽度{ //第一次调用为LevelWidth(T,a,1); if(T!=NULL) { a[h] + 1; LevelWidth(T->lchild, a, h + 1); LevelWidth(T->rchild, a, h + 1); }}...原创 2019-10-23 21:51:22 · 4336 阅读 · 16 评论 -
统计二叉树的高度
求二叉树的高度int Height(BiTree T) //递归求树的高度{ if (T == NULL) return 0; int ldep = Height(T->lchild); //结点左子树高度 int rdep = Height(T->rchild); //结点右子树高度 if (ldep > rdep) //取二者中更大的+1即树的高度 ret...原创 2019-10-23 21:47:52 · 1578 阅读 · 0 评论 -
统计二叉树度为0、1、2的结点
二叉树数据结构定义typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;统计二叉树中度为0的结点(叶子结点)int ConNode_0(BiTree T){ int i = 0; //i记录度为0的结点(叶子结点)数量 if (T) //如果T存在 { if...原创 2019-10-20 22:48:27 · 4937 阅读 · 4 评论 -
HDU1863 畅通工程
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 43631 Accepted Submission(s): 19523Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交...原创 2019-05-13 16:35:35 · 108 阅读 · 0 评论 -
HDU 1166 敌兵布阵
Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中...原创 2019-05-22 14:15:33 · 93 阅读 · 0 评论 -
HDU1213 How Many Tables
Problem DescriptionToday is Ignatius’ birthday. He invites a lot of friends. Now it’s dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friend...原创 2019-05-12 21:01:08 · 110 阅读 · 0 评论 -
辗转相除法求最大公约数
辗转相除法:求a和b的最大公约数cif(a%b!=0){ temp=a%b; a=b; b=temp;}return b;//a>=b证明:因为ab=k…r\frac{a}{b}=k…rba=k…r所以a=k∗b+ra=k*b+ra=k∗b+r设a,b最大公约数为c,则 a=m∗ca=m*ca=m∗c , b=n∗cb=n*cb=n∗c所以m∗c=...原创 2019-04-26 15:07:58 · 661 阅读 · 0 评论