学习积累
零零Hua
这个作者很懒,什么都没留下…
展开
-
Python+Kivy APP开发中文显示问题的解决办法
Windows系统下的解决办法:1.下载字体‘SourceHanSerifCN-Light.ttf’https://source.typekit.com/source-han-serif/cn/#get-the-fonts;2.将字体‘SourceHanSerifCN-Light.ttf’放在Kivy的字体文件夹里,如我的“D:\Python\python3.7\Lib\site-packages\kivy\data\fonts”3.在‘用户名’文件夹里---如我的“C:\Users\chenj原创 2021-01-03 16:30:45 · 1321 阅读 · 2 评论 -
使用VI编辑保存fstab文件
要查看或修改fstab文件:1.输入代码vi /etc/fstab,就打开了fstab文件;打开文件后,是处于不可编辑状态的*2.要修改文件,需要按下键盘上的Insert键底部会出现“-- INSERT – ”的提示*3.使用键盘上的左右上下键,移动光标到需要操作的地方4.修改完成后,再次按下insert键将部会出现“-- REPLACE --”的提示表示,已经替换(修改)文件*5.编辑完成内容后,按下Esc键,接着输入“:wq”,再按回车,就可以保存并退出vi编辑器了6.如果不想对文件进原创 2020-10-25 14:40:16 · 8126 阅读 · 3 评论 -
pandas中DataFrame数据结构的方法之sort_index
##pd.DataFrame.sort_index##pd.DataFrame.sort_index(self,axis=0,level=None,ascending=True,inplace=False,kind=‘quicksort’,na_position=‘last’,sort_remaining=True,by=None,)Docstring:Sort obje...原创 2020-01-07 21:14:35 · 1020 阅读 · 0 评论 -
Scrapy之3种模拟登陆方法
方法一:通过登陆后的cookies来维持登陆状态,爬取只有登陆后才能爬取的网页,具体方法见https://blog.csdn.net/weixin_43213382/article/details/103219239方法二:通过post方法爬取,将登陆账号等信息通过字典post进去。具体步骤为:a.随意输入账号、密码登陆,在network中找到session,在它的Header里找到Fo...原创 2019-11-24 16:43:52 · 270 阅读 · 0 评论 -
Scrapy之设置cookies
在spider页面重写start_requests方法,将登陆后的cookies复制过来,并处理成字典格式,在start_requests方法里yield一个请求,将cookies作为参数添加进去即可。关于如何准确获取登陆后的cookies只要是在完成账号登陆后打开的页面,保存的cookies都是一样的,随意复制即可。def start_requests(self): #复制过来的c...原创 2019-11-23 21:53:58 · 708 阅读 · 0 评论 -
Scrapy之设置随机User-Agent
首先,scrapy爬虫的User-Agent是在下载器中间件中设置的,即middlewares.py文件。具体步骤如下:1.在settings.py中设置User-Agent列表,列表中包含可选的user-agents;2.在middlewares.py中自定义一个类RandomUserAgentMiddleware(名字自取);3.在该类中通过from_crawler方法获取settin...原创 2019-11-19 22:50:22 · 723 阅读 · 0 评论 -
连通图的关节点算法
//---连通图的关节点寻找算法---////连通图的深度优先生成树中关节点特性://1.若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点,因为图中不存在联结不同子树中顶点的边;//2.若生成树中某个非叶子顶点,其某棵子树的结点均没有指向该结点的祖先的回边,则该结点必为关节点。#include <stdio.h>#include <stdlib.h>#i...原创 2019-09-08 11:10:51 · 1707 阅读 · 2 评论 -
有向图的强连通分量算法之Tarjan算法
//有向图的强连通分量:利用深度优先搜索树求有向图的强连通分量//------Tarjan算法:------\\//(1)设置DFN和LOW两个数组,其中DFN用于按搜索顺序给各个结点盖时间戳,LOW用于表示当前结点所能到达的最前的结点(即DFN/LOW最小)//(2)按深度优先搜索方法遍历,并更新各结点LOW值;//(3)最后判断DFN和LOW值是否相等,相等则该点为后续结点能到达的最前...原创 2019-08-29 21:12:29 · 177 阅读 · 0 评论 -
图的表示方法---邻接多重表
//邻接多重表是无向图的另一种链式存储结构,相比较于邻接表,多重链表更易于删除弧等操作//结构上,邻接多重表和邻接表的差别,仅仅在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAX_VERTEX_NUM 2...原创 2019-08-18 14:43:05 · 2831 阅读 · 0 评论 -
图的表示方法---十字链表
十字链表是有向图的另一种链式存储结构。可以看成是将有向图的邻接表和逆邻接表结合起来得到的一种链表。建立十字链表的时间复杂度和建立邻接表是相同的,十字链表解决了邻接表方便求出度不便求入度的问题。#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAX_VERTEX_NUM 20...原创 2019-08-18 11:01:57 · 1289 阅读 · 0 评论 -
有向图的强连通分量---《数据结构C语言版》教材中算法
//有向图的强连通分量:利用深度优先搜索求有向图的强连通分量//---《数据结构C语言版》教材中算法---\\//步骤1:在有向图G上,从某个顶点出发沿以该顶点为尾的弧进行深度优先搜索遍历,//并按其所有邻接点的搜索都完成(即退出DFS函数)的顺序将顶点排列起来//步骤2:在有向图G上,从最后完成搜索的顶点出发,沿着以该顶点为头的弧作逆向的深度优先搜索遍历。#include <st...原创 2019-08-25 17:02:10 · 531 阅读 · 0 评论 -
图的表示方法---邻接表
在建立邻接表时,若输入的顶点信息即为顶点的编号,则建立邻接表的时间复杂度为O(n+e),否则需要通过查找才能得到顶点在图中位置,则时间复杂度为O(n*e)在邻接表上容易找到任一顶点的第一个邻接点和下一个邻接点,但要判定任意两个顶点之间是否有边,则需要搜索该链表,不及邻接矩阵方便。#include <stdio.h>#include <stdlib.h>#includ...原创 2019-08-16 10:03:55 · 505 阅读 · 0 评论 -
最小生成树算法之普里姆(PRIM)算法
#include <stdio.h>#include <stdlib.h>#include "AdjMatrix.h" //该文件包含了邻接矩阵结构表示的图的创建程序struct{ VertexType adjvex; VRType lowcost;}closedge[MAX_VERTEX_NUM];void MiniSpanTree_PR...原创 2019-08-30 11:14:06 · 800 阅读 · 0 评论 -
最小生成树算法之克鲁斯卡尔(Kruskal)算法
//---Kruskal最小生成树算法---////1. 将各弧存放在线性表L中,并通过堆排序将其按弧权值从小到大排序//2.设置集合S,集合中数组表示图中的各个顶点//3.根据线性表L中各弧的顺序,依次选择各弧,通过判断各弧所依附顶点是否在集合S中的同一子集,来判断是否选择该弧为生成树//4.如果弧所依附的顶点分属不同的子集,则弧为生成树的弧,并将两个顶点所在集合并为同一个集合。#in...原创 2019-09-01 19:41:49 · 286 阅读 · 0 评论 -
最小生成树算法之克鲁斯卡尔(Kruskal)算法_修改版
//---Kruskal最小生成树算法---////1. 将各弧存放在线性表L中,并通过堆排序将其按弧权值从小到大排序//2.设置集合S,集合中数组表示图中的各个顶点//3.根据线性表L中各弧的顺序,依次选择各弧,通过判断各弧所依附顶点是否在集合S中的同一子集,来判断是否选择该弧为生成树//4.如果弧所依附的顶点分属不同的子集,则弧为生成树的弧,并将两个顶点所在集合并为同一个集合。#in...原创 2019-09-02 15:46:44 · 199 阅读 · 0 评论 -
连通图的关节点算法及双连通分量的输出
//---连通图的关节点寻找算法及输出双连通分量---////连通图的深度优先生成树中关节点特性://1.若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点,因为图中不存在联结不同子树中顶点的边;//2.若生成树中某个非叶子顶点,其某棵子树的结点均没有指向该结点的祖先的回边,则该结点必为关节点。//双连通分量:去掉任意一个结点都不会改变图的连通性,即不存在关节点//双连通分量算法:...原创 2019-09-17 21:20:42 · 666 阅读 · 1 评论 -
有向无环图的拓扑排序
//---拓扑排序算法---//拓扑序列是指顶点活动网(AOV-网)中将活动(即顶点)按发生的先后次序(即从弧尾顶点弧头顶点)进行的一种排列//1.在有向图中选一个没有前驱的顶点且输出之;//2.从图中删除顶点和所有以它为尾的弧;//3.重复上述两步,如果全部顶点已输出,则完成,如果最后图中不存在无前驱的顶点,则图中存在环。#include <stdio.h>#includ...原创 2019-09-18 22:42:07 · 616 阅读 · 0 评论 -
有向无环图的关键路径算法(修正)
//---关键路径算法---//关键路径:在边表示活动网(AOE-网)中,从开始点到完成点的最长路径。//最早开始时间等于最迟开始时间的活动即为关键活动,e(i)==l(i)。//而活动的最早开始时间等于弧尾结点表示的事件的最早发生时间,e(i)==ve(j)//活动的最迟开始时间等于弧头结点表示的事件的最迟发生时间减去活动所需时间,l(i)==vl(k)-dut(<j,k>)...原创 2019-09-21 22:59:32 · 570 阅读 · 0 评论 -
图的最短路径之Dijkstra算法
```c//---最短路径之Dijkstra算法:从某个源点到其余各顶点的最短路径---//1.选择集合V-S中距离集合S中点最近的点,加入集合S,//2.再通过新加入的点更新从集合S中的点到集合V-S中的点的距离。//P[i]=w表示从源点到点i的最短路径须先从源点到w点,再通过P[w]往前推,即可算出从源点到i点的最短路径经过的所有点#include <stdio.h>...原创 2019-09-24 22:00:41 · 315 阅读 · 0 评论 -
排序算法之基数排序
基数排序不需要进行记录关键字之间的比较,是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。#include <stdio.h>#include <stdlib.h>#include <math.h>#define MAX_NUM_OF_KEY 8#define RADIX 10#define MAX_SPACE 100/*定义静态链表结点...原创 2019-04-13 09:58:36 · 625 阅读 · 0 评论 -
有向图的强连通分量---Kosaraju算法
//有向图的强连通分量:利用深度优先搜索求有向图的强连通分量//------Kosaraju算法:------\\//(1)对原图取反,从任意一个顶点开始对反向图进行逆后续DFS遍历//(2)按照逆后续遍历中栈中的顶点出栈顺序,对原图进行DFS遍历,一次DFS遍历中访问的所有顶点都属于同一强连通分量。#include <stdio.h>#include <stdlib....原创 2019-08-24 16:22:40 · 450 阅读 · 0 评论 -
图的表示法---邻接矩阵
构造一个具有n个顶点和e条边的图的时间复杂度是O(n^2+e*n),其中对邻接矩阵的初始化耗费了O(n^2)的时间#include <stdio.h>#include <stdlib.h>#include <limits.h>typedef int Status;#define OK 1#define ERROR 0typedef int VR...原创 2019-08-15 14:45:21 · 354 阅读 · 1 评论 -
次优二叉查找树
/在各项等概率的前提下,对有序表进行折半查找性能是最优的//但如果各项记录的查找概率不等时,则使查找性能达最佳的判定树//是其带权内路径长度之后PH值取最小值的二叉树,称为静态最优查找树//由于构造静态最优查找树花费时间代价较高,因此可用近似最优查找树/#include <stdio.h>#include <stdlib.h>typedef char Elem...原创 2019-05-01 22:40:30 · 992 阅读 · 0 评论 -
排序算法之计数排序
计数排序统计记录表中每个记录的比该记录小的记录个数,得出该记录应排的位置#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20typedef int KeyType;typedef int InfoType;typedef struct{ KeyType key; InfoType ...原创 2019-04-13 13:21:10 · 199 阅读 · 0 评论 -
排序算法之直接插入排序、折半插入排序、2-路插入排序、表插入排序和希尔排序
插入排序包括直接插入排序和改进的折半插入排序、2-路插入排序、表插入排序和希尔排序。折半插入排序可减少关键字间的比较次数,记录的移动次数不变;2-路插入排序目的是减少排序过程中的移动次数,为此需要N个记录的辅助空间;表插入排序则可以完全避免记录的移动,但因比较次数一样,时间复杂度仍不变;希尔排序又称“缩小增量排序”,其基本思想为:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,...原创 2019-04-13 10:12:48 · 420 阅读 · 0 评论 -
排序算法之简单选择排序和堆排序
每一趟在n-i+1个记录中选取关键字最小的记录,并与当前序列中的第i个记录交换,作为有序序列中第i个记录#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAXSIZE 20typedef int KeyType;typedef int InfoType;typede...原创 2019-04-13 10:03:15 · 181 阅读 · 0 评论 -
排序算法之归并排序
/归并的含义是将两个或两个以上的有序表组合成一个新的有序表//归并排序需和待排记录等数量的辅助空间,其时间复杂度为O(nlogn)//归并排序递归形式算法简洁,但实用性差/**#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAXSIZE 20typedef int K...原创 2019-04-13 09:54:40 · 145 阅读 · 0 评论 -
排序算法之快速排序
/快速排序是目前被认为最好的一种内部排序算法//快速排序基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小//则可分别对这两部分记录继续进行排序,以达到整个序列有序/#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAXS...原创 2019-04-13 09:52:05 · 460 阅读 · 0 评论 -
上浮和下沉过程交替的冒泡排序算法
/*冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)*//*请给出上浮和下沉过程交替的冒泡排序算法*/#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20typedef int KeyType;typedef int InfoType;typedef struct{...原创 2019-04-13 09:48:59 · 2798 阅读 · 0 评论 -
基数排序之重写
前面博文的基数是基本按课本思路写的,本篇按“分配”、“收集”两个概念在不翻教材情况下再重写的,以此检查自己完全理解了基数排序概念。#include <stdio.h>#include <stdlib.h>#include <limits.h>#define MAXSIZE 30typedef struct{ int key; int...原创 2019-04-29 20:38:15 · 110 阅读 · 0 评论 -
平衡二叉树的创建
重点在于指针的运用//平衡二叉树又称AVL树//AVL树性质:左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1#include <stdio.h>#include <stdlib.h>#define LH 1 //左子树高1#define EH 0 //左、右子树等高#define RH -1 //右子树高1#define ...原创 2019-05-12 14:40:55 · 736 阅读 · 0 评论 -
无向图的生成树和生成森林---孩子兄弟链表表示法
//对于非连通图,每个连通分量中的顶点集,和遍历时走过的边一起构成若干棵生成树,//这些连通分量的生成树组成非连通图的生成森林。//以孩子兄弟链表作为生成森林的存储结构,以下算法生成非连通图的深度优先生成森林。//算法的时间复杂度为遍历算法相同.#include <stdio.h>#include <stdlib.h>#define MAX 20typedef...原创 2019-08-20 11:22:10 · 1507 阅读 · 0 评论 -
图的广度优先搜索
#include <stdio.h>#include <stdlib.h>#define MAX 20typedef enum {FALSE,TRUE} Boolean;typedef int Status;Boolean visited[MAX];//邻接表结构表示的图#include <limits.h>#define MAX_VERTEX_...原创 2019-08-18 21:37:00 · 145 阅读 · 0 评论 -
图的深度优先搜索
#include <stdio.h>#include <stdlib.h>#define MAX 20typedef enum {FALSE,TRUE} Boolean;typedef int Status;Boolean visited[MAX];//邻接表结构表示的图#include <limits.h>#define MAX_VERTEX_...原创 2019-08-18 18:48:34 · 127 阅读 · 0 评论 -
前序遍历线索化二叉树
#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0typedef enum PointerTag {Link,Thread};typedef int Status;typedef struct BiTNode{ char data; struct BiTNode *...原创 2019-08-08 12:39:59 · 1265 阅读 · 0 评论 -
四皇后、八皇后棋盘问题
数据与结构第六章第7节“回溯法与树的遍历”中关于四皇后问题//四皇后问题,或八皇后问题,即在棋盘上任何两个棋子都不占据棋盘上的同一行、同一列或同一对角线#include <stdio.h>#include <stdlib.h>#define Failed 0#define Succeed 1#define SIZE 8 //棋盘大小typedef int S...原创 2019-06-30 16:39:47 · 1474 阅读 · 0 评论 -
哈夫曼编码树构建及编码求解
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXWEIGHT 100typedef struct{ int weight; int parent,lchild,rchild;}HTNode,*HuffmanTree;typedef char * *...原创 2019-06-27 21:40:48 · 497 阅读 · 0 评论 -
线索二叉树的线索化及正向遍历和反向遍历
#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0typedef enum PointerTag {Link,Thread};typedef int Status;typedef struct BiTNode{ int data; struct BiTNode *l...原创 2019-06-06 00:08:58 · 718 阅读 · 0 评论 -
二叉树结点深度及平衡因子计算算法
从下往上开始计算每个结点的深度及平衡因子。#include <stdio.h>#include <stdlib.h>#define TRUE 1#define FALSE 0typedef int Status;typedef struct Node{ int data; int bf; int depth; struct N...原创 2019-05-25 16:54:36 · 5810 阅读 · 1 评论