算法
算法成长之路
Btbsja
一个俗气的小疯子
个人主页:https://btbsja.ml
展开
-
第五章 图的遍历
第五章 图的遍历 完整代码下载 第一节 深度和广度优先 图: 图就是由一些小圆点(顶点)和连接这些小圆点的直线(边)组成的。 遍历: 指把图的每一个顶点都访问一次。 深度优先 沿图的某一条分支遍历直到末端,然后回溯,再沿另一条进行同样额遍历,直到所有的顶点都被访问过为止。 我们可以用一个二维数组来存储 图 ,因为上图是无向图所以数组是沿对角线对称的。 //算法12 int book[101]...原创 2020-03-03 15:45:45 · 185 阅读 · 0 评论 -
第四章 搜索
第四章 搜索 完整代码下载 第一节 全排列 123的全排列为123 132 213 231 312 321 我们也可以用一个三重循环嵌套 for(a=1;a<=3;a++) for(b=1;b<=3;b++) for(c=1;c<=3;c++) if(a!=b&& a!=c&&b!=c) printf("%d%d%d\n",a,...原创 2020-03-03 15:44:32 · 157 阅读 · 0 评论 -
第三章 枚举算法
第三章 枚举算法 完整代码下载 枚举算法又称穷举算法。 基本思想:有序地去尝试每一种可能。 接下来我们去解决一个问题:将1~9填入到9个空位,每个数只能用一次,满足三位数加三位数等于三位数。 //算法09 for(i=1;i<9;i++) //初始化book数组 book[i]=0; for(i=1;i<=9;i++) //如果某个数出现就标记一下 book[a[i...原创 2020-03-03 15:44:01 · 245 阅读 · 0 评论 -
第二章 栈、队列、链表
第二章 栈、队列、链表 完整代码下载 第一节 队列 首先,引入两个整形变量 head 和 tail 分别记录队列的队首和队尾的下一位(为当队列中只剩下一个元素时,队首和队尾重合会带来一些麻烦)。 在队首加一个数: head++ 在队尾增加一个数: q[tail]=x;tail++ 队列 : 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(ta...原创 2020-03-03 15:43:20 · 154 阅读 · 0 评论 -
第二章 栈、队列、链表
第二章 栈、队列、链表 完整代码下载 第一节 队列 首先,引入两个整形变量 head 和 tail 分别记录队列的队首和队尾的下一位(为当队列中只剩下一个元素时,队首和队尾重合会带来一些麻烦)。 在队首加一个数: head++ 在队尾增加一个数: q[tail]=x;tail++ 队列 : 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(ta...原创 2020-03-03 00:20:17 · 221 阅读 · 0 评论 -
第一章 排序
第一章 排序 代码资源 下载 第一节 简化版桶排序 我们通过一个简单问题学习一下,一次考试班上5位同学分别考了5分、3分、7分、9分、0分(满分10分)。我们如何把分数从高到低排序呢? 其实我们用一个简单的一维数组就可以解决这个问题。 #include <stdio.h> #include <stdlib.h> int main() { int a[11],i,j,...原创 2020-03-01 17:23:57 · 237 阅读 · 0 评论