自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (2)
  • 收藏
  • 关注

原创 vmware下linux虚拟机无法连接至mobaxterm

虚拟机连接mobaxterm踩坑路程(ssh服务配置)

2022-10-26 14:54:23 2455 4

原创 flask-migrate:数据库界的git操作

flask全栈开发神器,数据库的管理工具flask-migrate的一点点小介绍

2022-02-04 23:47:22 1315

原创 Ubuntu服务器配置Jupyter notebook踩坑之旅

最近在做一个小项目,第一次交付之后老板让我把代码放我服务器上他好通过jupyter notebook直接运行,三天前才租的服务器空空如也这些东西都没配置过,于是捣捣鼓鼓一下午总算是把它彻底配置好了,因此记录踩到的一些坑。jupyter notebook安装$ pip install jupyter创建并更改配置文件$ jupyter notebook --generate-config这之后会在./jupyter目录下生成一个名为jupyter_notebook_config.py的文件,

2021-10-27 23:20:51 400

原创 Ubuntu安装crontab并使用

crontab可以完成定时执行的任务,因为这次需要在服务器上定时部署一个数据库更新的任务,就记录一下这个有用的工具。都说crontab从入门到出坑,不得不说cron的坑真的太多了!!特别是环境变量那一块,给人体验感非常不会(x)安装apt=get install cron编辑与查看crontab -l # 查看crontab -e # 编辑,一般选择vim编辑器# 格式如下:* * * * *- - - - -| | |

2021-10-23 23:22:55 5037

原创 计算机体系结构整理 - 第六章:计算机总线接口技术

6.1 总线概述总线的作用是进行数据交换,用于将两个或两个以上的部件连接起来,使它们之间可以进行通信。总线的含义可以分为以下几个层级:机械层(接口的外形、尺寸、信号排列、连接线长度等)电气层(信号描述、电源电压、电平电压、信号质量等)协议层(信号时序、握手规范、命令格式、出错处理等)架构层(硬件模型、软件架构等)6.2 总线分类按数据传递方向:分为单项总线和双向总线。单项总线又称单工总线,数据只能从一端传递到另一端,不能反向传递。双向总线也称双工总线,又分为半双工总线和全双工总线。

2020-11-24 16:27:40 820 1

原创 计算机体系结构整理 - 第七章:计算机系统启动过程分析

P.S.本书整理来自胡伟武老师的《计算机体系结构基础》对于一台处理器来说,它的启动过程实际上是一个特定程序的执行过程,这个程序称为固件,也称为BIOS(Basic Input Output System,基本输入输出系统)。在启动过程中,需要对处理器核、内存、外设等各个部分进行初始化,再对必要的外设进行驱动管理。7.1 处理器核初始化7.1.1 处理器复位处理器的第一条取指是由复位信号控制的,但受限于各种其他因素,复位信号没有对处理器内部的所有部分进行控制,例如TLB、Cache等复杂结构。对于M

2020-11-24 01:03:12 463

原创 人工智能课程笔记(2)通过搜索进行问题求解 - B

3.5 有信息(启发式)的搜索策略上一篇博文里简单介绍了不同的无信息搜索策略,这一节来接着介绍有信息搜索策略。首先我们需要有一个概念,什么是有信息的搜索策略?ANS:使用问题本身的定义之外的特定知识进行搜索的策略。3.5.1 贪婪最佳优先搜索(greedy best-first search)该算法试图扩展离目标最近的结点,可以更快求解。它只采用启发式信息来进行类似深度优先搜索的算法搜索,每一次扩展代价最小的结点。该算法的搜索代价是最小的,但不是最优的,它在每一步都试图找到离目标最近的点,但也容

2020-09-22 14:19:18 726

原创 人工智能课程笔记(1)通过搜索进行问题求解 - A

本系列博客记录人工智能学习笔记,使用教材为Stuart J.Russell的《人工智能 一种现代的方法(第三版)》。前两章学习的时候在糊,当反应过来需要记录一下的时候已经讲到第三章了(汗),希望还来得及= =第二章学习了最简单的反射Agent,本章学习的是“基于目标的Agent”中的问题求解Agent(Problem-solving Agent)以及一些求解此类问题的通用搜索算法。3.1 问题求解Agent目标Agent即Agent采纳一个目标(goal)并试图满足它,而问题求解的第一个步骤就是帮助

2020-09-15 13:19:50 1580

原创 三十天挑战数据结构(15)堆排序补充:C语言代码实现

上一篇博客里详细地展示了堆排序是怎么实现的,其实它看上去思路挺复杂但是C语言程序实现起来蛮简单。主要是通过循环来在二叉树上不断遍历调整结点顺序,形成大顶堆(或小顶堆)并且移走已经确定位置的那个结点。这里实现还是按照上篇博文中的大顶堆来实现:直接放代码好了:#include<stdio.h>#include<stdlib.h>void HeapSort(int *s, int length);void HeapAdjust(int *s, int v, int leng

2020-07-07 15:43:40 92

原创 三十天挑战数据结构(14)堆排序——十分钟带你透彻领悟

数据结构第九章内部排序简单的非常简单易懂好理解,难的非常??绕(起码对于一个初学者我觉得有点算法光看书来并不太好理解),堆排序就是其中一个。堆排序我自己看了很多参考资料搜了很多博客,看代码也觉得乱乱的,一直拖着没有来解决它,直到今早上临近ddl迫不得已要把书上习题搞定,再看了几遍,在前几次的积淀下这次居然莫名其妙地就明白了。总之它的思路在你明白了之后还是很清晰简单的,所以我觉得它值得单独用一篇文章来好好讲讲,让自己也透彻地领悟!首先我们大致要明白是基于“树”的操作(大部分我觉得都是二叉树),那么就需要

2020-06-18 12:20:43 145

原创 三十天挑战数据结构(13)几种内部排序方法的通俗解释

简单排序顾名思义最简单的排序方式,包括除了希尔排序之外的所有插入排序、冒泡排序和简单选择排序。其所需平均时间为O(n^2),辅助存储为O(1)。**A. 直接插入排序:**在建立存储数据结构的时候便一个一个插入来建立,按照大小关系让每个数据起初就处于它“该在的位置”。或是若原先就有一个数据组,需要插入一些新的数据,则将这些数据插入到它应该在的位置。**B. 2-路插入排序:**可以理解有一个循环链表,将数据依次插入进去,比标记点大的插入到标记点右边的序列,反之插入左边的序列,再重复该过程最后让这些..

2020-06-14 23:38:34 234

原创 三十天挑战数据结构(12)图的存储结构之邻接矩阵

图的存储结构最简单的就是邻接表,简言之就是对于n个顶点的一张连接图用n*n的矩阵来表示。初始状态除了对角线上的元素全部置0,其他位置都置为无穷大,表示没有边相邻,再慢慢添加边。对于有边连接的两个点m和n,在邻接矩阵中将(m,n)和(n,m)都设为1。完整建立代码:#include <stdio.h>#include <stdlib.h>#define MAXVEX 5#define INFINITE 65535typedef int Edgetype;typede

2020-06-13 01:01:38 256

原创 三十天挑战数据结构(11)图的最短路径之Dijkstra算法

猝不及防地进入了“图”专题…关于图的集中储存方法后面来补吧,先把关键算法一个Dijkstra算法一个Floyd算法给写了!首先我们还是和之前一样,给出一个图并且确定它的存储结构:最初学这个算法是在离散数学里面,当时也是急于复习,考前看了几遍勉强会算了,考完就忘差不多了。现在数据结构又遇到了它,会多一些印象,但还是重新学起为好。Dijkstra算法的核心思想就是分步去对每个顶点求到达它的每一步的最小路径。举个最简单的栗子,要求上图中v0到v3的最短路径,我们可以通过v0到v1和v0到v4的最短路径加

2020-06-12 22:30:10 1451

原创 三十天挑战数据结构(10)最小生成树之克鲁斯卡尔(Kruskal)算法

不同于克里姆算法,是以顶点为根出发进行查找路径,克鲁斯卡尔算法是通过最短边来查找路径。只不过这次存储结构是用边表结构,并且按照权重升序来存储。图还是和上一篇Prim算法里的一样:边表存储结构:完整代码:#include <stdio.h>#include <stdlib.h>#define MAXVEX 9typedef struct{ int begin; int end; int weight;} EdgeNode;typed

2020-06-12 17:57:33 222

原创 三十天挑战数据结构(9)最小生成树之普里姆(Prim)算法

咕了无数天之后猛更一波。其实是因为前两天忙于数据结构结课大作业,正好需要图的各种知识,所以暂时把树这一部分先跳过了。离期末还有一个月的感觉就是,我真的学不完辣!!!数据结构大作业给我的感觉是盲整邻接表(其实还没太学明白但是硬着头皮写出来了…)然后我明白了之前被它困扰其实不是概念问题,道理大家都懂,只是我的C语言太惨不忍睹了…经过这么将近十篇博客多多少少还是学懂了一些,弥补了C在指针啊,结构体啊这些地方的缺憾,总之慢慢来吧,鼓励一下自己!废话不多说了,来分析一下这个最小生成树之普里姆(Prim)算法!

2020-06-12 16:13:40 202

原创 三十天挑战数据结构(8)KMP算法

上一篇博客里提到,朴素的匹配算法效率太低,因此三位前辈:D.E.Knuth、J.H.Morris和V.R.Pratt发表了一种相对高效的匹配算法,简称KMP算法。要理解这种算法其实并不难,虽然起初看了无数视频看了许多书籍都没有办法很透彻的理解,但经过一点一点分析,总会有一天将它思考透彻的。总的来讲,这个算法做到的其实就是将不必要的匹配跳过。例如主串为:abcababca子串为:abcabx这是一个很简单的例子,我们会从第一个开始比较,一直到前五个“abcab”都能匹配成功,但是最后的“x”匹配失败

2020-05-31 17:48:23 157

原创 三十天挑战数据结构(7)串的基本操作与简单匹配

忙完实验又两天,继续学习数据结构。今天先学串的基本操作,最基础的有:获取长度,复制,连接,打印,简单匹配。前面几个不用多说,就说说简单匹配吧。简单匹配是相对于KMP算法而言的,简言之就是从子串的第一个字符开始和主串标记位开始的每一个字符进行对比,如果不完全匹配就将子串移到主串的下一个位置。这个算法思路清晰,实现容易,但是很容易在遇到极端问题时浪费大量的时间,比如在主串最后才完成匹配这种情况,效率并不是很高。因此就有了KMP算法,可以更加高效地实现字符串的匹配。于是我准备单独拿一篇博客来写KMP算法

2020-05-29 12:09:15 155

原创 三十天挑战数据结构(6)循环队列的实现

在学习了栈这种先进后出(First in last out,也称FILO)的数据结构之后,我们来学习这种先进先出(First in first out,也称FIFO)的数据结构。循环队列的储存结构相对链式队列要简单一些,是直接事先分配好一块空间,在有限的空间内进行数据的操作。起初队头指针和队尾指针都指向0位置,为了区别队列满状态,将队列中只剩一个空间时看做满状态。队列满状态如下图:具体代码实现:(由于比较简单就不一块一块列了,直接贴代码,注释也比较详细)#include<stdio.h&g

2020-05-25 22:28:19 135

原创 三十天挑战数据结构(5)栈的链式储存结构

在还未料到可能可以系统化按顺序进行数据结构学习时,我就已经将我最最不熟的栈,先给处理了。详见三十天挑战数据结构(1)栈的实现和操作今天看着书发现它还有一种链式表示方法,感觉和单链表有些相似,不妨也来试试,只针对其最最基础的创建和进栈出栈做点文章。链式栈结构体://定义链式栈结构体typedef struct StackNode{ ElemType data; struct StackNode *next;}StackNode, *LinkStackPtr;typedef str

2020-05-24 14:55:41 165

原创 三十天挑战数据结构(4)线性表的链式储存结构——创建、获取、插入、删除与打印

线性表分为顺序表和链表,其中顺序表就是分配一块空间,将数据按顺序排列,如果需要处理数据,删除或者插入,都会造成其它数据的位置变化,十分不方便且费事。因此我们引出了链表,不要求每个数据一定要按顺序存放,而是记住他们相邻的数据(位置),从而达到数据的储存效果。链式表的存储结构图示:线性表储存结构:typedef struct Node{ ElemType data; struct Node *next;}Node, *LinkList;建立单链表(头插法与尾插法)://建立单链

2020-05-23 15:59:25 377

原创 三十天挑战数据结构(3)线性表的顺序存储结构——创建、获取、插入、删除与打印

时隔两天的更新,和ddl打的不可开交。好不容易有点时间了,接着我们的数据结构挑战!既然要学,就从头开始学。既然C语言基础不扎实,就从最简单的开始补。前两期为了当时所需,出现的比较突然,这之后估计会挨着系统化的做出代码总结和学习了!!于是我们今天来实现最简单的数据结构——线性表的顺序储存结构。线性表的顺序储存结构图示:毕竟是最简单的数据结构,就不详述它了,直接贴代码,其中注释很详细。一共实现了:顺序表的初始化、建立、获取元素、插入元素和删除元素的基本操作。#include<stdio

2020-05-23 00:58:55 478

原创 三十天挑战数据结构(2)层序建立二叉树、先序输出

先序中序后序建立二叉树都并不难,但是层序反而需要动点脑子,例如对于二叉树:这样一棵二叉树的层序遍历结果是:1-2-3-4-null-5-null-6-7-null-8而利用以上的层序遍历结果作为输入,先序输出为:1-2-4-6-7-3-5-8(忽略了null)这种层序遍历输入创建二叉树最开始是在某位博主的文章里学到的(忘了具体是哪位,55…),他的代码的一些指针啊数组啊就没有变动了,但这个博客主要是为了学习,所以事先在此声明一下,侵删。层序遍历先序输出源代码:#include<stdi

2020-05-19 01:38:13 337

原创 三十天挑战数据结构(1)栈的实现和操作

先三两句说一下我的状况:大二计算机系学生,大一学了一年基础物理数学,大二上才开始接触计算机程序语言相关知识。高中没搞过信息技术竞赛,没有学过任何少儿编程课…总而言之就是一个零基础小白 -_-开始专业课的学习之后一切看似十分正常,没想到关键时刻网课来临,没有老师线下指导、早八习惯性没有效率(懒…),再加上大一上C语言程序与设计老师水了一个学期其实并没有学到啥,造成了半个学期过去了,我的数据结构这门课菜的就像一锅汤…但是毕竟它是重点,我深深的知道。不能逃避,只有勇敢地去面对。虽然链表二叉树图没一个学

2020-05-18 21:15:15 174

学科门类和代码2009(包含一级学科、二级学科)Excel资源

根据GB/T 13745-2009整理的一级学科和二级学科门类的Excel数据,包含各学科名称和代码

2023-02-06

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

TA关注的人

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