《啊哈!算法》
八咫鸦是我的光!
菜鸟的志向!
展开
-
全排列的知识点
首语 首先要知道,什么是全排列 百度百科上定义: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。 公式:全排列数f(n)=n!(定义0!=1) 基本操作步骤 最基本的全排列 看了b站up 的视频,了解大概基础 我手动敲一下这个代码哈 #include<stdio.h> void swap(int A[],int i,int j) { int temp=A[i]; A[i]=A[j]; A[j]=t原创 2021-05-22 19:14:58 · 650 阅读 · 2 评论 -
Day3第四章 万能的搜索~深度优先搜索
#include<stdio.h> int a[10],book[10],n;//此处特别说明一下,c语言的全局变量在没有赋值以前默认为0,因此这里的book数组无需再次赋初始值0 void dfs(int step)//step表示现在站在第几个盒子面前 { int i; if(step==n+1)//如果站在第n+1盒子已经放好扑克牌 { //输出一种排列(1~n号盒子中的扑克牌) for(i=1;i<=n;i++) printf("%d",a[i]); pri原创 2021-04-23 14:01:14 · 77 阅读 · 0 评论 -
Day2《啊哈算法》并查集
并查集(不相交集数据结构) 解决问题:解密犯罪团伙 共有n个强盗,m条线索(x强盗和y强盗是同伙),请问有多少个独立的犯罪团伙? #include<stdio.h> int f[1000]={0},n,m,k,sum=0; //这里是初始化,数组里存的是自己数组下标的编号 void init() { int i; for(i=1;i<=n;i++) f[i]=i; } //这里是找爹的递归函数,不停地去找爹,直到找到祖宗为止, //其实就是去找犯罪团伙的最高领导人,“擒贼先擒王”原原创 2021-04-19 13:04:53 · 229 阅读 · 3 评论 -
Day1《啊哈!算法》树
树的特性: 1.一棵树中的任意两个结点有且仅有唯一的一个路径联通 2.一棵树如果有n个结点,那么它一定恰好有n-1条边 3.在一棵树中加一条边将会构成一个回路。 树:任意两个节点间有且仅有一条路径的无向图 叶节点:无子节点 根结点:无父节点 内部节点:既不是根结点,也不是叶节点 深度:从根到该结点的层数 二叉树:每个节点最多有两个儿子(子树) 定义:二叉树要么为空,要么由根结点、左子树和右子树构成,左子树和右子树分别是一颗二叉树 满二叉树:每个内部结点都有两个儿子(严格定义:深度为h且有2^h-1个结点)原创 2021-04-18 13:38:31 · 117 阅读 · 0 评论