自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 Scipy 稀疏矩阵 COO、CSC、CSR

在Scipy包中,存在专门针对稀疏矩阵进行优化存储的函数,分别是COO、CSC和CSR。之所以要使用稀疏矩阵,是因为计算所使用的数据中会存在很多无效项,所以可以转化存储方式,放弃存储无效数据,存储更多的有效数据,降低计算的复杂度。在Scipy中有专门用于数学计算优化的package,就是scipy.sparse。而COO、CSC和CSR就是在sparse中定义的函数。Scipy.sparse官方文档可以看到在Sqarse matrix classes中存在三个类定义,分别是 ...

2020-07-13 16:17:13 2842 1

转载 批量梯度下降(BGD)、随机梯度下降(SGD)与小批量梯度下降(MBGD)

梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)。其中小批量梯度下降法也常用在深度学习中进行模型的训练。接下来,我们将对这三种不同的梯度下降法进行理解。  为了便于理解,这...

2019-11-15 10:11:05 461

转载 深度学习基础——张量的通俗理解

转载链接:https://www.cnblogs.com/abella/p/10142935.html也许你已经下载了TensorFlow,而且准备开始着手研究深度学习。但是你会疑惑:TensorFlow里面的Tensor,也就是“张量”,到底是个什么鬼?也许你查阅了维基百科,而且现在变得更加困惑。也许你在NASA教程中看到它,仍然不知道它在说些什么?问题在于大多数讲述张量的指南,都假设...

2019-11-13 10:11:02 1915

原创 python爬虫基础——万维网WWW和http协议

pyhton爬虫基础万维网1.统一资源定位符URL1.1 URL的格式1.2 使用http的URL2.超文本传送协议HTTP2.1 HTTP的操作过程2.2 HTTP的报文结构3.超文本标记语言HTML万维网万维网是一个大规模的、联网式的信息储藏所,英文简称为Web。万维网使用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(也就是链接到另...

2019-03-06 16:52:50 773

原创 PAT乙级-坑点集合

PAT乙级虽然挺简单但是坑不少。因为不给出测试数据,所以不知道怎么才能AC。以下几个题都是只做对了一部分,剩下的错误的点怎么想都不知道怎么才能过,所以整理一下,等回头再慢慢琢磨。1.1008 数组元素循环右移问题1008 数组元素循环左移2.1012 数字分类1012 数字分类3.1014 福尔摩斯的约会1014福尔摩斯的约会4.1017 A/B...

2019-03-04 19:32:00 1122 2

转载 C语言的printf输出格式控制

***C语言的printf输出格式控制 ***printf大家都耳熟能详,但是能真正将其用法弄透的估计很少见。 转一篇,改天整理。 1.转换说明符 %a(%A)     浮点数、十六进制数字和p-(P-)记数法(C99) %c    &nbsp

2019-02-10 19:17:46 335

转载 C语言scanf()和gets()及printf()和puts()的区别

原 C语言scanf()和gets()及printf()和puts()的区别 2015年08月16日 08:30:46 xingjiarong 阅读数:22447 <span class="tags-box artic-tag-box">...

2019-02-09 17:16:58 451

原创 C++的前导0

前导0,就是在整数的面前添加的0;不过前导0在各种进制表示的数中有不同的含义。在C++中定义一个整形int变量:int a = 01;输出结果:可见,即使添加了前导0,a作为一个整形变量,输出a时并没有输出前导0。改变一下:int a = 08;这时再输出a,结果是:出现了错误。invalid digit "“8” in  octal consta...

2019-02-01 21:54:27 7582

原创 C/C++怎么实现字符串和数字的相互转化

先上链接:https://www.cnblogs.com/happygirl-zjj/p/4633789.html字符串和数字的相互转化,在处理某些问题时会有很大的便利。从字符串——>数字的转变,或者从数字——>字符串的转换,有1.库函数 2.非库函数 两种大体途径。库函数一.利用stringstream类1.从字符串到整数stringstream sstr(...

2019-01-31 22:40:39 562

转载 如何求素数

先上转载链接: chaoojie的博客1.素数,曾称为质数。素数的定义为:利用反证法可以证明,素数的个数是无穷的。欧几里得证明素数是无限的。反证法利用排中法的思想。1.1素数有哪些性质?可以看到,其中较为重要的性质有(2),(5),(6),(7),(8)。其中第八个性质可能会有快速解题的妙用。2.如何求素数?2.1首先介绍什么是合数。合数与质数是相对的概念。合数...

2019-01-26 23:13:01 640

原创 如何求两个数的最大公约数

如何求两个数的最大公约数,网上已经有很多办法,作为自己的笔记记一下比较常用和好用的几种。大神的更详细链接在此:https://blog.csdn.net/Holmofy/article/details/764010741.辗转相除法先上定义:什么是辗转相除法。给定两个整数a和b,利用辗转相除法求a和b的最大公约数的流程:(1)假定a>b,如果a<b,则交换a...

2019-01-23 22:26:42 1396

原创 LeetCode 01 Two Sums

LeetCode的学习笔记:001题目描述:1.第一个解决办法就是两层循环求和,时间复杂度达到了O(n^2),按题目所给范例运行时间是68ms。leetcode所给的代码模板和OJ不同。LeetCode所给的是一个Solution类,需要在这个类下写出问题解决的函数。C++模板给出的函数是 vector<int> twoSum(vector<int&gt...

2019-01-22 21:46:10 220

原创 树状数组

  什么是树状数组:定义来自百度百科:用图就可以表示为:将箭头看做该节点的儿子节点,每一个节点的权值为所有儿子节点的权值和,易得:              c[1]=a[1];c[2]=a[1]+a[2];c[3]=a[3];c[4]=c[2]+a[3]+a[4]=a[1]+a[2]+a[3]+a[4];              c[5]=a[5];c[6]...

2019-01-18 18:42:14 132

原创 如何求一组数字的逆序对

问题描述:给定一组数字或者输入一组数字,如{13,2,5,6,7,4},求这组数字的逆序对数量。首先逆序对的定义:解决办法:1.最基础最容易理解的算法就是采用循环。从数字的第一个数据开始向后遍历,碰到逆序就累加。最后输出逆序对。时间复杂度为O(n^2)。其实是可以改进的。优点是好写,容易理解。缺点是时间复杂度太高。2.考虑冒泡排序和直接插入排序。冒泡排序和直接插入排...

2019-01-18 17:31:15 718

转载 快速幂和矩阵乘法

快速幂快速幂的快速是和传统的自乘求幂方法相比较的“快”。快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。举例:假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时,a^11=a^(2^0+2^1+2^3)  ...

2019-01-15 16:54:34 374 2

原创 JavaScript——数据类型和变量

先复习一下Java的基本数据类型。四种整数类型——byte、short、int、longbyte:8位,用来表示最小数据单位。short:16位。很少使用。int:最为常用的数据类型,32位。两种浮点数类型——float、doublefloat:32位,1位符号位,8位指数,23位有效指数。double:64位,最为常用,1位符号位,11位指数,52位有效位数。一种字符类型——charchar:1...

2018-03-12 21:47:09 268

原创 JavaScript——基本语法

JavaScript的基本语法与C++基本类似。1.基本语句每一个语句以“;”为结束标志。语句块用{...}但是,JavaScript并不强制要求在每个语句的结尾加;,浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;。2.声明变量语句有区别。对于c++:int var;//整型变量char var://字符类型对于javascript:var a;3.{...}相关花...

2018-03-05 21:24:12 1825

原创 Rush-char字符类型转化为整数类型

有时候需要用到将char字符类型转化为整数类型,即1+‘0’=1;例如代码char a = '1';cout<<int(a)<<endl;return 0;则运行程序后,输出的ASCII码为此时a为字符1,ASCII码为49当代码改为char a = '1';a = a-'0';cout<<int(a)<<endl;return 0;...

2018-03-03 22:11:58 634

转载 冒泡排序 思想与原理

1、排序方法将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。冒泡排序是就地排序,且它是稳定的。(1)初始   R[1..n]为无序区。(2)第一趟扫描

2016-11-02 17:41:17 682

原创 大数加法(C语言)#include<stdio.h> #include<stdlib.h> #include<string.h> char A[10005]; char B[10005]; int

关于大数加法的C语言版本可完美通过#include#include#includechar A[10005];char B[10005];int fa, fb;void swap(char *a, int i, int j){ char t = a[i]-'0'; a[i] = a[j]-'0'; a[j] = t;}void add(char *a, char

2016-10-10 15:37:15 13691

原创 2015-12-18 第十六周 项目4 - 英文单词的基数排序

1.问题及代码#include #include #include #define MaxLen 9 //单词的最大长度 #define Radix 27 //基数rd为27,分别对应' ','a',…'z' typedef char String[MaxLen+1]; //定义String为字符数组类型

2015-12-18 08:39:15 546

原创 2015-12-18 第十六周 项目3 - 归并排序算法的改进

1.问题及代码#include #include #include #include #define MinLength 64 //最短分段长度 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 {

2015-12-18 08:35:48 473

原创 2015-12-18 第十六周 排序(2)

1.问题及代码希尔排序:#include #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType d

2015-12-18 08:29:59 453

原创 2015-12-18 第十六周 排序

1.问题及代码冒泡法:#include using namespace std; int main() { int a[50]={57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}; int i=0,j=12,t; while(i<12) { wh

2015-12-18 08:28:13 351

原创 2015-12-18 第15周 项目3—B-树的基本操作

1.问题及代码 实现B-树的基本操作。基于序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}完成测试。   (1)创建对应的3阶B-树b,用括号法输出b树。   (2)从b中分别删除关键字为8和1的节点,用括号法输出删除节点后的b树。 #include #include #define MAXM 10 //定义B-树的最

2015-12-18 08:16:07 477

原创 2015-12-18 第15周 项目2—用哈希法组织关键字(2)

1.问题及代码(2)若处理冲突的方法采用链地址法,请设计算法,输出哈希表,并计算成功情况和不成功情况下的平均查找长度。#include #include #include #define N 15 #define M 26 typedef struct node //定义哈希链表的节点类型 { char *key; struct

2015-12-18 08:12:28 463

原创 2015-12-7 项目2—用哈希法组织关键字

1.问题及代码(1)若处理冲突的方法采用线性探测法,请设计算法,输出每个关键字对应的H(key),输出哈希表,并求成功情况下的平均查找长度。#include #include #define N 15 #define M 26 int H(char *s) { return ((*s-'a'+1)%M); } int main()

2015-12-07 17:01:32 399

原创 2015-12-7 项目1—(3)希尔排序

1.问题及代码#include #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data;

2015-12-07 16:59:04 436

原创 2015-12-7 项目1—(2)直接插入排序

1.问题及代码#include #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data;

2015-12-07 16:58:01 408

原创 2015-12-7 项目1—哈希表及其运算的实现

1.问题及代码#include #define MaxSize 100 //定义最大哈希表长度 #define NULLKEY -1 //定义空关键字值 #define DELKEY -2 //定义被删关键字值 typedef int KeyType; //关键字类型 typedef char * Inf

2015-12-07 16:56:01 540

原创 2015-12-7 项目1—数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)

1.问题及代码1.头文件:graph.h,包含定义图数据结构的代码、宏定义、要实现算法的函数的声明;void ArrayToMat(int *Arr, int n, MGraph &g); //用普通数组构造图的邻接矩阵void ArrayToList(int *Arr, int n, ALGraph *&); //用普通数组构造图的邻接表void MatToList(MGraph

2015-12-07 16:51:45 775

原创 2015-12-7 迷宫问题之图深度优先遍历解法

已知图的邻接表如图3所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是_ 0123

2015-12-07 16:50:11 638

原创 2015-11-16 【项目1 - 图基本算法库】

1.问题及代码定义图的邻接矩阵和邻接表存储结构,实现其基本运算,并完成测试。 要求: 1、头文件graph.h中定义相关的数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括:void ArrayToMat(int *Arr, int n, MGraph &g); //用普通数组构造图的邻接矩阵void ArrayToList(int *Arr, int n, ALG

2015-11-16 16:33:08 442

原创 2015-11-16 【项目2 - 用二叉树求解代数表达式】

1.问题及代码用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法,(1)根据形如“1+2∗3−4/5”的字符串代表的表达式,构造出对应的二叉树(如图),用后序遍历的思路计算表达式的值时,能体现出先乘除后加减的规则;(2)对构造出的

2015-11-16 16:20:54 657

原创 2015-11-16 【项目1 - 二叉树算法验证】

1.问题及代码运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于,可以从更多角度体会算法,以达到逐渐掌握算法的程度。使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 (1)层次遍历算法的验证 实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。  请利用二叉树

2015-11-16 16:10:09 791

原创 2015-11-2 【项目3 - 利用二叉树遍历思想解决问题】

1.问题及代码假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试:  (1)计算二叉树节点个数;   (2)输出所有叶子节点;   (3)求二叉树b的叶子节点个数;   (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。   (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断:①t1和t2都是空的二叉树,相似

2015-11-02 16:28:14 621

原创 2015-11-2 【项目2 - 二叉树遍历的递归算法】

1.问题及代码【二叉树遍历的递归算法】  实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 代码:#include #include "btree.h"void PreOrder(BTNode *b) //先序遍历的递归算法{ if (b!=

2015-11-02 16:19:11 517

原创 2015-11-2 【项目1 - 二叉树算法库】

1.问题及代码定义二叉树的链式存储结构,实现其基本运算,并完成测试。1、头文件btree.h中定义数据结构并声明用于完成基本运算的函数。对应基本运算的函数包括:void CreateBTNode(BTNode *&b,char *str); //由str串创建二叉链BTNode *FindNode(BTNode *b,ElemType x); //返回da

2015-11-02 16:01:04 1166

原创 2015-10-30【项目4-广义表算法库及应用】

1.问题及代码自建算法库代码:1.头文件:glist.h,包含定义广义表数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GLIST_H_INCLUDED#define GLIST_H_INCLUDEDtypedef char ElemType;typedef struct lnode{ int tag;

2015-10-30 08:35:48 509

原创 2015-10-30【项目2 - 对称矩阵压缩存储的实现与应用】

1.问题及代码问题:用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);//为N阶对称矩阵初始化存储数据的一维数组bint Value(int b[], int i, int j);//返回存储在b[M]中,对应二维数组A[i][j]的值void Assign(int b[], int e, int i, int j);//将e赋值给对应二维数组

2015-10-30 08:33:41 611

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除