Machine Learning
ConceptionIn simple words, ML is a type of artificial intelligence that extract patterns out of raw data by using an algorithm or method. The key focus of ML is to allow computer systems to learn from experience without being explicitly programmed or human intervention. ML is a field of AI consisting of learning algorithms that − Improve their performance (P) At executing some task (T) Over time with experience (E) Data SetIn the mind of a computer, a data set is any collection of data. It...
Graph
图的存储邻接矩阵我们使用邻接矩阵来表示图的边。 邻接表法这里的表是指链表。 表面一个顶点所邻接的边。
Sort
qsortqsort的使用方法如下: 12#include <stdlib.h> void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *)); buf:要排序数组的起始地址num:数组中元素的个数size:数组中每个元素所占用的空间大小compare:比较规则,需要我们传递一个函数名 Example 1234567891011121314#include <stdlib.h> #include<stdio.h>typedef int ElemType;int compare(const void* left, const void* right) { //return *(ElemType*)left - *(ElemType*)right;//从小到大 return *(ElemType*)right - *(ElemType*)left;//从大到小}int main() { int...
Search
顺序查找暴力遍历 顺序表 通过数组下标递增来扫描每一个元素 链表 通过next指针来扫描整个链表 二分查找(折半查找)(Binary Search)流程图 代码实现123456789101112131415161718192021222324252627#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define ElemType intint Binary_Search(ElemType e, ElemType* arr, int n) { int low = 0, high = n - 1, mid;//记录数组下标 while (low <= high) { mid = (low + high) / 2; if (arr[mid] == e) { return mid; } else if (e < arr[mid]) { high = mid - 1; } else { low = mid...
Tree
二叉树二叉树是树的一种,每个节点最多只能有两个孩子。 树型结构是一种逻辑结构,他们同样可以用顺序结构和链式结构来实现。 结构1234567//树的相关数据结构typedef char BiElemType;typedef struct BiTNode { BiElemType c; struct BiTNode* lchild; struct BiTNode* rchild;}BiTNode, * BiTree; 层序建树这里要用到一个辅助链表(不带头节点)。它将记录一个个节点,一层层,插入到树中的顺序。 流程图 代码实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include"Header.h"void PreOrder(BiTree p) { if (p != NULL)...
Queue
队列队列这种逻辑结构,也能用顺序表和链表实现,本次主要讲用顺序结构实现的循环队列。 队列是一种被限制的线性表,只能在队列的队头进行删除,在队尾进行增加 循环队列首先,我们要先认识一下循环队列。这里的循环队列,我们用顺序结构(数组)实现。 从逻辑上,把队头和队尾拼接起来。(当指针指向队尾,再往前移动一个位置,就%MaxSize) 结构12345typedef struct { ElemType data[MaxSize]; int front;//指向队头元素 int rear;//指向队尾元素的下一个元素} SqQueue; 要面临的两个问题是: 队列为空的条件。 队列为满的条件。 由于队列在增加和删除的过程中,元素在队列中的序号是变化的,所以不能像栈一样用常量-1表示。所以,我们定义q.front == q.rear即队列为空。定义(q.rear + 1) % MaxSize ==...
Stack
栈栈也是一种线性表,它也可以由顺序表,和链表来实现。 只不过栈是一种被限制的线性表,它只能对栈顶(线性表的最末端的元素)进行基本操作(增删改查)。 本次,主要讲栈的顺序存储结构。 顺序栈结构 数组data[MaxSize] 当前栈顶top 1234typedef struct { ElemType data[MaxSize]; int top;}SqStack; 操作流程图 实现代码1234567891011121314151617181920212223242526272829303132333435363738394041void Init(SqStack &s) { s.top = -1;}bool IsEmpty(SqStack s) { if (s.top == -1) { return true; } return false;}bool IsFull(SqStack s) { if (s.top >= MaxSize - 1)...
List
线性表线性表是一种逻辑结构,是有序的,所有元素类型相同。 它可以由顺序表和链表(存储结构)来实现。 顺序表 结构: 数组(空间)。ElemType data[MaxSize]; 当前长度。int len; 插入,删除初始化顺序表(顺序表中元素为整型),里边的元素是1,2,3,然后通过scanf读取一个元素(假如插入的是6),插入到第2个位置,打印输出顺序表,每个元素占3个空格,格式为1 6 2 3,然后scanf读取一个整型数,是删除的位置(假如输入为1),然后输出顺序表 6 2 3,假如输入的位置不合法,输出false字符串。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define MaxSize 50#define ElemType inttypedef struct { ElemType...
Basic_Syntax
数据类型基本类型 整型int(4B=32b,可以表示2^32) long long(8B=64b,可以表示2^64个数) 1234567#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main() { int a, b; scanf("%d %d", &a,&b); printf("%d", a+b);} 字符型char(1B=8b) 用单引号''括起来的,只能包含一个字符 1234567#include<stdio.h>int main() { char c = 'a'; printf("%c", c); return...
爬取图片
页面滚动由于很多的页面都是动态加载的,在用selenium模拟浏览器时,如果不滚动页面下方,那么有的页面数据就无法加载,所以需要让selenium执行js代码,对页面进行滚动 1234567891011121314def scroll(browser): # 执行这段代码,会获取到当前窗口总高度 js = "return action=document.body.scrollHeight" # 初始化现在滚动条所在高度为0 height = 0 # 当前窗口总高度 new_height = browser.execute_script(js) while height < new_height: # 将滚动条调整至页面底部 for k in range(height, new_height, 300): browser.execute_script('window.scrollTo(0, {})'.format(k)) ...
