自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yixianfeng41的专栏

Just coding!

转载 Java多线程

一、java多线程实现方式Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。1、继承Thread类创...

2017-08-28 23:24:42 525 0

原创 地图匹配小结

如果您是要做交通轨迹方面的研究,那么地图匹配你一定会遇到,因为要进行后续研究,在数据预处理阶段,必须要做的工作之一就是地图匹配,现在地图匹配算法已经很成熟了,并且已存在开源的代码可用了,那么本文主要就是把从数据,到算法到程序这整个环节走通,做一个总结。开源地图-OpenStreetMapOpenS...

2017-06-11 12:07:03 9671 16

原创 浅析张量分解(Tensor Decomposition)

一般一维数组,我们称之为向量(vector),二维数组,我们称之为矩阵(matrix);三维数组以及多位数组,我们称之为张量(tensor)。 在介绍张量分解前,我们先看看矩阵分解相关知识概念。一、基本概念矩阵补全(Matrix Completion)目的是为了估计矩阵中缺失的部分(...

2017-06-10 22:51:43 44498 22

原创 服务器远程安装Matlab2015

因为在windows上跑matlab实验,出现内存不足的情况,因此,希望能在服务器上安装一个matlab。然后出现各种问题,花了一天时间才装好,特此记录下。因为对于没装过的童靴来说,每一个步骤都很关键,因此,尽量把每个步骤写的细一点。Matlab镜像文件matlab 安装镜像文件我是从这儿下载的,...

2017-04-17 20:42:27 6897 3

原创 常用的相似度计算方法原理及实现

在数据分析和数据挖掘以及搜索引擎中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。常见的比如数据分析中比如相关分析,数据挖掘中的分类聚类(K-Means等)算法,搜索引擎进行物品推荐时。 相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;...

2017-04-11 20:06:11 76695 9

原创 C/C++可变参数函数

一、C可变参数函数一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的实际参数。但在某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。典型的可变参数函数的例子有printf()、scanf()等.先看代码:printf(“hello,...

2017-03-10 21:29:16 925 0

原创 《UNIX网络编程》笔记——套接字选项

一、操纵套接字选项的方法1、getsockopt和setsockopt函数这两个函数仅用于套接字#include <sys/socket.h> int getsockopt(int sock, int level, int optname, void *optval, sockl...

2017-03-10 17:45:15 845 0

原创 UDP-Connect

我们都知道TCP 是面向连接的,因此再传输数据之前必须要建立连接,也就是客户端调用connect(),服务端accept(),完成三次握手,建立连接。 我们也知道UDP是面向无连接的,它传输数据之前是不需要建立连接的,那么对于UDP通信编程,我们是否需要调用connect了?如果可以,什么时候调...

2017-03-10 16:17:26 719 0

原创 TCP-流量控制

所谓的“流量控制”,就是让发送方的发送速率不要太快,要让接受方来的及接收。这是一种对于端的控制,不像拥塞控制,是对网络状况的控制。那么,TCP是怎么实现流量控制的了?这个可以从成块数据(大分组)、交互数据流(小分组)两种数据流情况来详细讨论。一、成块数据对于成块数据,一般采用滑动窗口实现流量控制。...

2017-03-10 13:14:49 571 0

原创 守护进程概念及实例

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任 务。比如...

2017-03-01 20:08:27 977 0

原创 多进程和多线程

“进程是程序在处理机上的一个执行过程,是资源分配的基本单位”;“线程是CPU调度的一个基本单位”。概念,我们都烂熟于心了,那么是否可以究其本质的分析下,多进程和多线程的优缺点,以便在实际场景中进行合适的选择了?一、多进程1、概念在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行...

2017-03-01 19:02:15 542 0

原创 随机数问题

一、用随机函数构造另一个随机函数比如,有这样一个需求,现在有一个rand5()函数,这个函数可以生成1-5的随机数,让你通过这个函数生成1-7范围的随机数。怎么做了? 一般思路是这样的:用两次rang5函数,通过这两次rand5结果,构造出一个随机数范围包括0-7,但比0-7大的范围就好了。比如...

2017-02-28 12:55:00 849 0

转载 Linux命令-sed

原文地址:linux sed命令详解一、简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文...

2017-02-23 14:20:56 523 0

原创 操作系统-内存管理笔记

内存管理最基本的操作就是由处理器把程序装入内存中运行。技术有固定分区、动态分区、简单分页、简单分段、虚拟内存分页、虚拟内存分段等。在现代操作系统中基本都有虚拟内存技术。下面了解下各个方法的思想。1、固定分区管理用户内存空间的最简单的方法是就是把它分成许多固定边界的区域。对于分区大小,我们可以采用大...

2017-02-23 13:58:27 696 0

原创 Effective STL-尽量使用区间操作代替单元素操作

一、原因:1、代码更少,更简洁; 2、 对序列容器,还可以避免单个单个申请造成多次分配内存(拷贝开销大)二、区间操作:1)区间构造:container::container(InputIterator begin,InputIterator end);2)区间插入:对于序列容器:void Con...

2017-02-23 10:37:02 693 0

原创 Effective STL-各种容器正确删除元素方法

一、去除一个容器中有特定值得所有对象1、如果容器是vector、string或deque,使用erase-remove惯用法c.erase(remove(c.begin,c.end(),value),c.end());//c为容器,value为待删值2、对于listc.remove(value);...

2017-02-23 10:27:41 638 0

转载 使用 C++11 智能指针时要避开的 10 大错误

我很喜欢新的C++11的智能指针。在很多时候,对很多讨厌自己管理内存的人来说是天赐的礼物。在我看来,C++11的智能指针能使得C++新手教学更简单。 其实,我已经使用C++11两年多了,我无意中发现多种错误使用C++11智能指针的案例,这些错误会使程序效率很低或者直接崩溃。为了方便查找,我把它们...

2017-02-22 23:27:27 1272 0

原创 shell-特殊符号

在Shell中,有几个符号有着特别的含义,分别是#符号、分号、引号、斜线与反斜线、反引号、冒号、问号、美元符号,下面详细看看这几个特殊字符的作用。

2017-02-21 22:00:10 3798 0

原创 Linux命令-查看文件

linux中查看文件的命令有cat,more,less,head,tail等,本文主要看看他们的用法与区别。

2017-02-21 21:04:10 755 0

原创 必须掌握的协议-TCP

网络层次模型,以及TCP头部格式

2017-02-19 15:19:51 1038 0

原创 二叉树-常见简单算法题

二叉树,对一些常见的简单算法题,比如翻转二叉树,求高度,判断是否是相等的二叉树等,我们是必须掌握的!!!

2017-02-19 01:02:10 1546 0

原创 常用算法-回朔法

1、概念回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为...

2017-02-18 23:46:23 1474 0

原创 UDP套接字编程

UDP简介UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快.

2017-02-17 12:41:52 452 0

转载 linux编程常用头文件

转自:socket网络编程中的头文件Socket编程中需要用到的头文件stdlib.h : //某些结构体定义和宏定义,如EXIT_FAILURE、EXIT_SUCCESS等sys/types.h:包含很多类型重定义,如pid_t、int8_t等sys/socket.h:与套接字相关的函数声明...

2017-02-17 12:20:25 783 0

原创 python itchat实现微信自动回复

今天在实验楼发现一个特别好玩的,python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈!!

2017-02-16 22:00:32 17056 10

原创 位运算技巧与应用

位运算是把数字用二进制表示之后,对每一位上的0或者1的运算。运算包括与、或、异或,非。熟练掌握位运算技巧,能给我们解决问题提供一些巧妙的方法。

2017-02-16 17:47:28 2150 0

原创 二分查找实现及其应用

二分查找,应用广泛,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果x<a[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。

2017-02-16 15:16:40 1996 0

原创 二叉树-遍历终极版

对于二叉树的遍历,最熟悉的就是递归遍历了,对二叉树的非递归遍历大致知道一些,但是不太熟悉,尤其是后续非递归遍历的实现,一直比较懵逼,于是上网查询了一下,果然大神无处不在,那个后序遍历的双栈法,简直让人拍案叫绝,下面总结下。

2017-02-16 00:25:13 1821 0

原创 二叉树-创建、重建、转化

对于二叉树的创建女,一般我们只熟悉最简单的二叉树创建方式,即逐个输入节点,然后按照先序遍历或者中序、后序遍历方式来递归建立二叉树。但是,光掌握这个是不够的,我们还得掌握二叉树的重建(先序中序重建二叉树,后序中序重建二叉树),数组转换为二叉树,链表转换为二叉树等等。1、最简单的创建方式我们可以根据先...

2017-02-15 23:25:13 1767 0

原创 TCP套接字编程(二)

前面通过多进程,多线程,支持处理多个客户端通信,本篇将讲述用select这个IO复用来实现。IO模型首先连接一下IO模型,unix下有5种可用IO模型,分别是:阻塞式IO、非阻塞式IO、IO复用、信号驱动式IO。 5种IO模型比较 1、阻塞式IO阻塞式IO是最常用的IO模式,它就是没有数据...

2017-02-15 13:22:58 390 0

原创 特征工程概述

有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。

2017-02-15 00:15:36 434 0

原创 TCP套接字编程(一)

篇一:LInux socket编程(一) 篇二:LInux socket编程(二)一、Tcp 客户端服务器通信模型首先要清楚socket通信整个过程是怎样的,首先肯定都要创建一个socket, 然后服务器收拾收拾,准备接客(listen,bind accept).诶,有客户端来大保健了(acce...

2017-02-14 17:43:44 377 0

原创 必须掌握的C++常用String函数

本系列将对string函数的用法以及实现做一个总结,共包括以下部分: strcspn 、strcpy 、strcat 、strchr 、strncmp 、strcmp 、strstr 、strlen

2017-01-22 14:53:51 434 0

原创 必须掌握的C++常用关键字汇总

本文将对一些常见c++关键字做一个总结,共包括如下关键字: const、extern、operator、sizeof、-static、new、volatile、union

2017-01-22 14:27:55 5824 3

转载 稀疏矩阵存储格式总结

稀疏矩阵是指矩阵中的元素大部分是0的矩阵,事实上,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在90%甚至99%以上。因此我们需要有高效的稀疏矩阵存储格式。本文总结几种典型的格式:COO,CSR,DIA,ELL,HYB。

2017-01-05 15:33:21 764 0

原创 函数重载、覆盖与隐藏

一、函数重载1、特征:1)相同的范围(在同一个类中); 2)函数名字相同; 3)参数不同; 4)有无virtual关键字不影响。2、调用调用实参与形参符合的那个函数。二、函数覆盖覆盖是指派生类函数覆盖基类函数。1、特征:1)不同的范围(分别位于派生类与基类); 2)函数名字相同; 3)...

2016-12-16 19:36:58 302 0

原创 哈希表一

一、定义哈希表(散列表)通过将关键码映射到表中的某个位置上来存储元素,然后根据关键码来访问元素。具体来说,就是在关键字 k 和元素的存储位置 p 之间建立一个对应关系 f ,使得 p=f(k) , f 称为哈希函数 。创建哈希表时,把关键字为 k 的元素 直接存入地址为 f(k) 的单元 ;以后当...

2016-12-16 10:04:33 278 0

原创 c++复杂指针

c++指针是一个难题,复杂指针更是一个难题,因此有必要分清指针数组与数组指针,函数指针与指针函数,并能准确识别他们,并进行灵活运用!

2016-12-16 09:57:15 699 0

原创 二叉树-详解平衡二叉排序树AVL

平衡二叉搜索树AVL也许因为输入值不够随机,也许因为输入顺序的原因,还或许一些插入、删除操作,会使得二叉搜索树失去平衡,造成搜索效率低落的情况。 比如上面两个树,在平衡树上寻找15就只要2次查找,在非平衡树上却要5次查找方能找到,效率明显下降。那么什么叫“平衡”,直观上的最佳平衡条件...

2016-11-19 14:06:55 1953 0

原创 递归原理及常见应用

一、什么是递归递归算法,就是直接或间接调用自身的函数,也就是把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策略。上面解释可能有点太官方了,来看看知乎上大神的通俗易懂的解释:解释一“古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正...

2016-11-09 21:37:12 2555 0

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