自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (1)
  • 收藏
  • 关注

原创 【机器学习第二章】Matplotlib

Matplotlib是专门用于开发2D图表(包括3D图表)的工具,便于使用,以渐进、交互式方式实现数据可视化。

2024-03-07 16:49:44 919

原创 【机器学习第一章】概述

计算机视觉(CV)是指机器感知环境的能力。机器学习是从数据中自动分析获得模型,并利用模型对位置数据进行预测。样本:一行数据称为一个样本。特征:一列数据称为一个特征。目标值:要预测的目标就是目标值。特征值:某一特征具体的值。比如上图中我们根据打斗镜头和接吻镜头对电影的类型进行预测,打斗镜头和接吻镜头就是特征,每一部电影的数据就是一条样本,最终要预测电影类型就是目标值。特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。

2024-03-06 16:17:57 900 1

原创 【Linux】文件IO详解

Linux文件结构文件描述符  文件描述符已经不陌生了,在一个进程中一个打开的文件就是用一个文件描述符所表征的,可以看作是一个句柄,就是所谓的遥控器。但是这个遥控器到底怎么来控制具体的文件呢?接下来会依此讲解文件描述符背后的在UNIX环境下实现相关的数据结构。UNIX环境下的文件共享  文件描述符用来表征一个文件,但是为什么操作系统要用这么一个整数来表征一个文件呢?这就操作系统底层实现有莫...

2020-04-05 19:03:21 3047 1

原创 【操作系统原理】第二章-进程和线程

进程和线程进程什么是进程  在操作系统中,操作系统需要对各种资源进行管理,大概可以分为以下几类:内存,文件,磁盘,进程。所谓进程就是操作系统有序管理应用程序的执行的方式,来保证以下几点:  1、所有资源对多个应用程序是可用的。  2、物理处理器在多个应用程序中切换,保证所有程序都在执行中。  3、处理器和I/O设备都能得到充分的利用。  因此所有现代操作系统都依赖于一个模型,在该模型...

2020-02-20 21:37:12 625

原创 【操作系统原理】第一章-操作系统概述

操作系统概述操作系统设计的目标和功能  在最早期的计算机中,并没有能够称得上是操作系统的服务管理程序,例如早期的串行处理计算机,就是人们把程序一个一个输入进计算机,设定好预计时间,然后让操作系统进行执行。这样的串行处理存在着调度不合理,准备时间长的问题,并不便于使用。  于是人们想方设法希望可以设计出便于使用的操作系统,而到现代,计算机已经普及,大众对于操作系统的要求更加严格,企业和实验室对...

2020-02-09 00:59:40 867

原创 【DS】第五章-排序

排序基本概念  本章会介绍并且实现,常用的几种排序算法及其思想,但是关于排序除了时间复杂度和空间复杂度这两个衡量算法的基本标准外,还引入了稳定的概念。稳定  如果一个排序算法排序结束后,表中相同大小的元素依然可用保持和排序前一样的相对顺序则称该排序是稳定的,反之是不稳定的。  举个例子,以下这个序列中,出现了相同的元素3,为了便于区分,我将其中一个用红色标记出来。  如果我们进行了某...

2020-01-10 00:08:47 220

原创 【DS】第四章-二叉树

树的概念及结构什么是树  树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多 个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结 点可以分为多个不相交的子树。  下图就是一棵常见的树。树的常用名词...

2020-01-06 17:47:17 197

原创 【DS】第三章-栈和队列

第三章 栈和队列栈栈的特性  栈是一种线性结构,这种特殊的线性结构有着最大的特点——后进先出(Last In First Out)。最后压入栈的元素会最先被弹出。  由于栈只用在同一端进行插入和删除,因此我们优先选择使用顺序表,因为在顺序表的末尾插入和删除的时间复杂度都是O(1),并且操作简单实现  栈的实现可以基于顺序表、链表和双端队列,这里使用最简单方法基于顺序表来实现栈。#in...

2019-12-14 21:01:36 166

原创 【项目】文章相似度检索工具

文章相似度检索工具开发环境  基于Windows操作系统,使用vs进行开发。项目介绍功能介绍  本项目实现的是一个根据词频获取两篇文章相似度的工具。文本相似度检索经常使用在文本聚类,文本分类,文本挖掘,信息检索上,像是常见的论文查重工具也都是基于文本相似度进行检索分析的。  本项目分别利用相对词频,tf-idf计算两篇文章的相似度,计算结果较为可靠。检索原理  基于词频进行文本相似...

2019-12-02 17:27:00 1122

原创 【Cpp】第十九章-Cpp11新特性

Cpp11新特性  Cpp11中新增了很多新的语法,很多之前我们都已经有介绍过初始化列表如何使用  在Cpp11中允许使用初始化列表初始化任何类型,不论是内置类型还是自定义类型都可以使用初始化列表进行初始化,而在Cpp98的版本中是不能初始化自定义类型的。#include <iostream>#include <vector>class Test{publ...

2019-11-10 15:54:51 773

原创 【Cpp】第十八章-空间配置器

空间配置器什么是空间配置器  空间配置器是为各个容器高效管理空间的工具,负责空间的申请与回收,虽然一般情况下我们用不到它,但是研究空间配置器可以让我们对STL有更深的理解。为什么需要空间配置器  我们之前在实现各个容器的时候,需要申请空间大的地方都是通过new申请的,但是这样的申请方式有着很大的缺陷:  1、空间申请和释放需要自己管理,容易造成内存泄露。  2、频繁向系统申请小块内存,...

2019-11-06 20:48:43 210

原创 【Cpp】哈希的应用

哈希的应用  哈希思想在算法中的应用繁多其重要性是不言而喻的,这里简单介绍两种哈希在大数据中的应用。位图算法思路  假如说有这么一种情景:给40亿个不重复的无符号整数,没排过序,判断一个无符号整数是否在这40亿个数中。  首先我们从时间考虑,假如说我们遍历40亿个数,事件复杂度是On的,如果我们先排序再用二分查找,排序要ONlogN二分查找要OlogN也还是不够快。不过这道题最重要的不是...

2019-11-06 15:56:29 582

原创 【Cpp】第十七章-unordered版本关联式容器

unordered系列关联式容器什么是unordered系列  unordered系列的关联式容器有unordered-map/unordered-set/unordered-multimap/unordered-multiset,这些版本的关联式容器和普通版本的又有什么区别呢?我们简单使用下和普通版本的做一个对比。#include <iostream>#include &lt...

2019-11-04 21:59:12 295

原创 【Cpp】第十六章-关联式容器

关联式容器  STL中关联式容器有以下几种map/set/multimap/multiset/unordered_map/unordered_set/unordered_multimap/unordered_multiset,所谓关联式容器即他们内部存储的是具有关联性的key-value形式的键值对。本文先从他们的基础使用开始讲起,逐渐深入到底层实现原理,并且最后从二叉搜索树到红黑树再到哈希桶逐...

2019-11-02 20:33:18 232

原创 【DS】栈的压入、弹出序列

栈的压入、弹出序列题目  输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)  https://www.nowcoder.com/practi...

2019-10-25 11:21:37 172 1

原创 【Linux】请问下面的程序一共输出多少个“-”?

请问下面的程序一共输出多少个“-”?int main(void){ int i; for (i = 0; i < 2; i++) { fork(); printf("-"); } return 0; } 运行结果[misaki@localhost test]$ ./main --------结果分析 ...

2019-10-24 11:41:17 1467 1

原创 【DS】第二章-顺序表和链表

第二章 顺序表和链表顺序表什么是顺序表  顺序表是物理地址全部连续的存储数据的方式。顺序表分为动态顺序表以及动态的顺序表,静态的顺序表一般很少使用,因为其大小一旦固定不能再进行改变。  顺序表在开发中十分经常使用,因为其方便简单,并且易于操作。数组就是顺序表的一种,因为其在逻辑结构上是线性的,在物理结构上是连续的。由于十分常用在Cpp的STL库中封装了以顺序表为数据结构的vector容器供...

2019-10-21 22:07:34 181

原创 【Cpp】第十五章-类型转换

类型转换C中的类型转换  C语言中的类型转换分为隐式类型转换和强制类型转换两种。#include <stdio.h>int main(){ //隐式类型转换 int i = 10; double d = i; printf("%d, %.2lf\n", i, d); //强制类型转换 i = (int)d; printf...

2019-10-18 17:24:36 218

原创 【Cpp】第十四章-智能指针

智能指针基础概念为什么要有智能指针  首先先看一段程序,看看这段程序可能会出现什么问题。#include <iostream>using namespace std;void Func(){ int* ptr = new int[10]; //...假设这其中有很多代码 throw "error!"; // delete[] ptr;}...

2019-10-17 21:04:15 577

原创 【项目】快备

快备开发环境  本项目开发完全在Centos7.2版本下使用C/Cpp进行开发,gcc版本5.3.1,用到的库有httplib,boost及zlib,工具有gcc,gdb,makefile,git。项目介绍功能介绍  “快备”可以让Windows用户安全可靠的将文件上传到云端进行备份,并且可以随时下载下来。“快备”通过在用户本地创建一个共享文件夹,只要用户将需要备份的文件放入文件夹内,启...

2019-10-14 21:37:56 210

原创 【网络】第七章-典型IO模型

典型IO模型IO的种类  IO模型根据特性可以分为以下几个种类:阻塞IO,非阻塞IO,信号驱动IO,异步IO,多路转接IO。阻塞IO  为了IO发起IO调用,若IO条件不满足则一直等待,直到条件具备。非阻塞IO  为了IO发起IO调用,若条件不满足则直接报错返回,执行其他指令。之后再次发起IO调用,条件不满足则继续报错返回,条件满足则直接进行数据拷贝后调用返回。  阻塞与非阻塞的区别...

2019-10-11 21:35:25 166

原创 【网络】第六章-链路层协议及其他协议

链路层协议及其他协议链路层功能  负责相邻设备之间的数据帧传输。  网络层负责主导数据传输方向,而链路层更加偏向底层,用来引导相邻主机间数据如何传输,之后由物理信号传输数据。以太网协议  以太网协议用于在链路层组织数据,主导相邻主机之间的数据传输方向。  在以太网协议中有一个重要概念MAC地址:相邻设备定位的地址,也就是物理网卡的硬件地址,标识每一块网卡,在两块网卡之间的数据传输起到作...

2019-09-29 18:16:17 309

原创 【网络】第五章-网络层协议

网络层协议  理解网络层功能,常见协议。网络层功能  网络层主要负责地址管理以及路由选择。在网络中我们从一个ip到另一个ip有很多条路可以走,而网络层则是帮我们规划我们传输数据的最佳路线。ip协议协议字段  1、4位版本:当前的协议是IPV4还是IPV6,由socket创建时传入的地址域决定。  2、4位首部长度:决定了头部有多长,以4个字节为单位。  3、8位服务类型:3位优先权...

2019-09-25 23:36:59 230

原创 【Cpp】第十三章-异常

异常传统C中处理错误的方式  以往我们在写C语言程序时,当用户的错误输入或者非期望结果发生时我们的程序有可能就会开始不正确的走向,此时我们为了程序的可靠性和健壮性往往需要对结果进行判断,并且防止一些非预期行为的发生。在C语言中我们程序在发生错误时我们往往会通过以下几种方式来阻止程序继续向错误方向执行,并且向外返回错误。返回错误码  返回错误码就是我们常说的返回值,每个函数都有一个返回值,我...

2019-09-24 18:21:07 850

原创 【Cpp】第十二章-多态

多态  几乎所有面向对象语言我们总能在其中听到这么几个特点,封装,继承,多态,对于Cpp也不例外,那么什么是多态,Cpp又是如何实现多态的呢?多态的概念  什么是多态?多态就是当不同的对象去完成某种相同的事务时却展现出完全不同的行为状态。在生活中也存在着各种各样的多态,例如当我们要买票时不同的人有着不同的票,学生票,成人票等等;又比如说当别人家的孩子到你家来做客时,你父母对待你和对待ta之间...

2019-09-23 20:29:04 435

原创 【网络】第四章-传输层协议

传输层协议  传输层负责端与端之间的数据传输,其中典型协议为TCP协议和UDP协议。  TCP协议是TCP/IP协议栈中的传输层的典型协议,叫传输控制协议,面向连接,可靠传输,提供字节流服务。  UDP协议是TCP/IP协议栈中的传输层的典型协议,叫用户数据报协议,无连接,不可靠,提供数据报传输服务。UDP协议协议字段  协议字段都包含在UDP协议数据报的报头中,每次发送数据都会将这些...

2019-09-22 18:46:28 260

原创 【网络】第三章-应用层协议

应用层协议  在这个章节中将会进一步详细讨论应用层协议及其知名协议HTTP协议。协议  应用层负责程序之间的数据沟通,其中协议大概分为两类,自定制协议和知名协议。自定制协议  自定制协议就是程序员自己定义的协议,用来对应用程序发送的数据进行整理或者加密,对端只有了解这种协议才能对数据进行解析。  这里利用自定制简单实现一个网络版计算器。客户端将两个数字和一个运算符传输给服务端,服务端对...

2019-09-21 18:50:36 208

原创 【Linux】第八章-多线程

第八章 多线程线程概念  多进程任务处理是同时通过多个进程进行任务,多个pcb拥有多个虚拟地址空间,分别执行不同的代码,之间互不关联。而多线程是通过多个pcb共用一个虚拟地址空间,分别执行虚拟地址空间上所对应的多个不同的物理内存中的代码。即一个虚拟地址空间对应多个物理内存。  之前我们说linux下pcb是一个进程,但其实linux下线程以进程pcb模拟实现线程,因此linux下pcb是线程...

2019-09-19 18:08:22 189

原创 【Cpp】《Effective C++》第一章-让自己习惯C++

  这是我在学习《Effective C++》中总结得出的心得与体会,完全是以我自己的理解所作的笔记,是对个人经验的积累。基于第三版我以每个章节进行总结,全书一共九个章节。第一章-让自己习惯C++条款01:视C++为一个语言联邦  View C++ as a federation of languages.  在初期Cpp被开发之初,Cpp并没有如今这样丰富的功能,它更应该被称为仅是一个带...

2019-09-16 18:14:17 187

原创 【网络】第二章-套接字编程

套接字编程  套接字编程也叫Socket编程。这个章节将总结和归纳Linux操作系统下如何利用系统接口进行网络编程。网络字节序  之前有讲过字节序这个概念,不同的主机往往有着不同的数据存储协议,分为大端以及小端两种,但既然是网络通信,不同主机之间就必须要统一规定一个字节序来规定数据传输方式,这个就被称为网络字节序。系统接口  传输层协议  网络通信是两端通信,客户端与服务端。主动发起...

2019-09-16 15:04:58 431

原创 【项目】P2P下载帮

P2P下载帮开发环境  本项目开发完全在Centos7.2版本下使用C/Cpp进行开发,gcc版本5.3.1,用到的库有httplib及boost,工具有gcc,gdb,makefile,git。项目介绍功能简介  这个下载工具可以帮助用户在局域网内搜索所有正在使用本软件的用户并且进行两台主机间的文件传输。功能模块  项目共分为两大功能模块,客户端与服务端。服务端  服务端模块主...

2019-09-14 22:05:33 2618

原创 【网络】第一章-网络基础

网络基础  在这个章节先对计算机网络进行大概简单的介绍,之后的章节会逐个进行深入的讨论。网络发展背景网络的构成  网络一开始先利用交换机进行两台计算机之间的互联及数据交换,一台主机将数据发给交换机,交换机再发送给另一台,不会起任何冲突。  但是假如又要加入一台主机,交换机就会起矛盾,它不知道该将数据发给哪台主机。为此又出现了新的数据交换工具,路由器,路由器可以自己选择将数据发送给合适的...

2019-09-09 22:39:37 176

原创 【Cpp】第十一章-继承

继承什么是继承  继承是为了更好的使代码得以复用而产生的,同时呈现了面向对象程序设计中的层次结构,继承会使得我们写好的类可以得到扩展。简单来说继承可以增强我们的代码复用,包括可以复用类的层次结构,同时使程序复用层次和条理。#include <iostream>#include <string>using namespace std;class Person{...

2019-08-26 22:16:50 543

原创 【Cpp】第十章-模板进阶

模板进阶  之前的博客已经介绍过模板的概念,这是Cpp在实现泛型编程中不可缺少的一环,在模板进阶的讨论中会着重于模板的更为高级的使用。非类型模板参数使用  在模板中我们通常都是定义一个类型模板参数,在进行实例化的时候通过传入类型来实例化模板,但是模板中也可以定义非类型的模板参数。用一个封装的定长顺序表进行举例。#include <iostream>#include <...

2019-08-19 18:45:39 179

原创 【Cpp】第九章-STL_stack类和queue类

stack类和queue类  stack和queue以及priority_queue(优先级队列)是STL中三大容器适配器,将其称为容器适配器是因为其在底层只是对现有容器进行的了封装而并没有重新实现。因此在容器适配器中都有让传入容器的模板参数。容器适配器  适配器是一种设计模式,在GOF的《设计模式:可复用面向对象软件的基础》中是这样说的:将一个类的接口转换成客户希望的另外一个接口。适配器模...

2019-08-05 18:07:31 356

原创 【Cpp】第八章-STL_deque类

deque类基础介绍  deque是双端队列,它提供了和vector类似的接口但是底层的实现与vector完全不同,vector底层用三个指针指向数组的起点,尾部和总容量的尾部,并且所有元素都是连续的,但是在deque中所有元素并不一定都是在连续的内存空间上的。deque在底层实现上是将一个连续的空间分段进行管理,并将它们的首地址用一个指针数组进行管理,这样特殊的存储结构使得它在头部和尾部增加...

2019-07-30 16:55:36 175

原创 【Cpp】第七章-STL_listl类

list类基础介绍  list类是STL中封装的链表模板类,并且底层实现是以双向链表作为基础进行封装的。在数据结构中,线性存储结构中主要分为顺序表和链表,前者在物理结构上拥有连续的内存空间和地址,在STL中vector和string都是使用了这种结构,其最大的特点就是方便进行随机访问并且尾插和尾删都能达到O1的时间复杂度并且使用方便,而链表作为物理结构上内存空间不连续的数据结构,其最大的特点就...

2019-07-29 23:16:10 271

原创 【算法】第二章-搜索

搜索深度优先搜索(DFS)  深度优先搜索是使用递归的方式以深度为主逐个探索遍历每种情况,在排列组合,迷宫问题中十分常用。深度优先搜索思想简单,但是由于使用递归,要求我们遍历时探索的必须深度有限。不然有可能会使栈溢出。还要注意有时我们在使用深度优先搜索时情况过多,而大部分是无用解时就需要套入剪枝。  模型:DFS(){ //1.判断边界,如果已经到达搜索的最深,则回退尝试其他可能...

2019-07-27 17:50:24 121

原创 【Cpp】第六章-STL_vector类

vector类基础介绍  vector类是STL中另一大容器,它十分类似于一个顺序表,不过经过封装它已经变成了一个可变长度并且拥有各种功能的顺序表,在其内部我们可以通过利用数组进行实现。vector是很常用的容器,因为它支持随机访问,并且尾插和尾删拥有O1的时间复杂度。但是在中间插入时要更高的时间复杂度,最差情况下需要遍历整个数组才能进行插入。它与string的物理与逻辑结构上十分相似,不过它...

2019-07-24 22:35:08 213

原创 【Cpp】第五章-STL_string类

string类STL  STL是Standard Template Library的简称,中文名为是标准模板库,在Cpp中模板是构成泛型编程的基础,我们利用模板可以极大程度地提高我们的代码复用率,但是如果模板要我们现写也有点过于繁琐,不过好在Cpp中为我们写代码方便为我们制作了一套标准地模板库,供我们直接使用十分方便。STL的版本  STL发展至今也不是一气呵成的,随着发展和进化,STL一...

2019-07-22 20:55:57 309

jdk-8u102-windows-i586.exe

jdk-8u102-windows-i586.exe

2019-05-12

空空如也

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

TA关注的人

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