自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 序列排序总结之比较排序算法

这里我们着重讲解插入排序,冒泡排序,归并排序,快速排序,堆排序插入排序基本思路是 将无序集合的元素插入到有序集合中,每次插入元素的时候保持有序集合的有序性。 步骤:默认单个元素的集合是有序选择无序集合中的一个元素在有序集合中寻找适当的位置将选择出的元素插入到适当的位置迭代执行步骤2-4的内容,直到无序集合为空#include <stdlib.h>#include <stdio.h>v

2016-11-24 15:31:25 934

原创 C语言基础(三)之控制流

C语言控制流主要是顺序,分支,循环。这三种方式基本上是语言学上必须提供的三种方式,还有一种特殊的方式是在函数层面,就是递归。本以为控制流部分其实没有什么好说的,三种基本控制方式都是显而易见的,但是,最近一直研究NFA,发现真是难懂,但是代码写出来就是基本的控制流组成的,后来又想起KMP算法,排序算法,发现这些都是基本控制流组成的。于是我猜想控制流不是简单的表面上的东西,这东西和算法是紧密相关的。在没

2016-11-24 11:35:19 3475

原创 KMP算法总结

/* * KMP 算法一直以来都是我不好理解的算法之一 * 不好理解主要是有几个考量,这个算法只要我有一段时间不去接触它,我就会遗忘 * 不知道如何再复现这个算法。究其本质原因还是个人对这个算法得理解不深刻 * 最近这段时间,我一直从一个初学者的角度来思考这个算法的本质性的问题 * 我不用画图,一旦使用了图形就意味着理解的程度肯定是上了一个层次, * 线性的理解方式,是最自然的方式。

2016-11-24 10:30:10 386

原创 乱序字符串的问题

其实乱序字符串的实质是考察排序的问题,乱序字符串经过适当的转化就会变成一个排序问题,至于你使用什么排序方法就会有多种选择,插入,快速,堆。当然,如果采用建立HASH表的方式也是可以的,不过需要书写好的hash函数。问题: 题目描述:给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。样例:对于字符串数

2016-11-23 15:19:26 952

原创 C语言基础(二)之复杂声明方式

我们本篇博客的内容主要是解决如何阅读C语言的声明。

2016-11-19 10:40:09 342

原创 C语言基础(一)

参看: 《C程序设计语言》第二版上面的参考书籍是主要的学习手段,下面只是针对一些特定的问题进行论述,这些特定的问题,书中可能没有提到。 一个对象的类型决定着该对象可取值的集合以及可以对该对象施行的运算。问题:我们知道基本的数据类型有四种char,int,float,double。 类型修饰符也有四种short, long, signed, unsigned。 类型修饰符和基本数据类型的组合并不

2016-11-18 11:32:24 354

原创 LINUX 下编写C程序代码的工具

编辑工具—vim编译工具—gcc调试工具—gdbgcc和gdb的版本上面必须保持同步性质,否则低版本的gdb不能够很好的工作在高版本的gcc上(http://www.gnu.org/software/gdb/ 这是新的gdb的下载地址)。

2016-11-17 17:59:49 904

原创 C语言的输入输出模型

参考:http://blog.csdn.net/shrdlu/article/details/48929865其实对于计算机器的理解,难点是为什么会有这个模型的建立,也就是模型建立的实际意义,另外还有一点,这个模型的形象化表示,如果能理解这个模型的形象化表示,就可以更深刻的理解模型。 网络或者书籍往往不能这样去解释模型的意义以及模型的形象化表示,所以学习计算机的初期,你或许会有点进步,但是学到最后

2016-11-15 17:33:44 2387

原创 多条件输入模型

概述:当我们有几种不同的输入格式,但是我们使用同一个输入函数这个问题可以扩大化,比如,我们可能有多个输入条件,我们应该如何处理?这两个问题,我们可以采用同样的模型。下面举个例子:比如:我们输入 mm/dd/yy 和 yy-mm-dd 这两种格式的日期,我们如何处理输入?

2016-11-14 17:04:21 496

原创 函数的参数不确定的编写方式

通过《C程序设计语言》第二版第7章的介绍,我们知道标题准确翻译或许是“变长变元表”,这个无可厚非,我们只要知道我们要编写一个函数参数个数不确定的函数,如何编写?形式:int printf(char *fmt, ...);从形式上出发,我们需要处理的部分是”…”。这部分的处理,我们可以这样设计: 首先“…”表示的是一个变元表,这个表我们可以理解成是一个链表,对于链表的处理,我们往往需要一个指针指向当

2016-11-14 16:22:49 686

原创 TCP 回射程序(同步处理僵死进程的方式)

参考:http://www.cnblogs.com/Anker/p/3271773.html

2016-11-14 14:55:00 293

原创 僵死进程的意义

看了很多关于僵死进程的目的,都没有一个形象化的解释,这里结合自己个人的经验,来说明一下个人的理解。我们假设根本不存在僵死进程,那么会发生什么?我们来进行一个CASE设计:父进程记录所有子进程的pid记录下来,后来父进程需要查看某个子进程的信息,这里我们只能通过该子进程pid来获取进程信息,可是,如果没有僵死进程,我们能否判定这个pid是个有效的pid?这就是一个很典型的异步问题

2016-11-14 13:17:55 858

原创 TCP 回射程序(处理子进程的SIGCHLD信号)

客户端的代码;/************************************************************************* > File Name: tcpcli.c > Author: mhsheng > Mail:[email protected] > Created Time: Wed 09 Nov 2016 10:55:40 AM CST

2016-11-14 11:46:09 440

原创 TCP回射程序

服务器端的代码如下:/************************************************************************* > File Name: tcpserv.c > Author: mhsheng > Mail:[email protected] > Created Time: Wed 09 Nov 2016 09:59:55 AM

2016-11-09 14:50:05 495

原创 子进程和父进程是否共用同一个全局变量

/************************************************************************* > File Name: test_g_var.c > Author: mhsheng > Mail:[email protected] > Created Time: Wed 09 Nov 2016 11:36:09 AM CST ***

2016-11-09 13:19:32 13142

原创 TCP的时间获取客户程序和时间获取服务器程序

需要使用root权限/************************************************************************* > File Name: daytimetcpcli.c > Author: ma6174 > Mail: [email protected] > Created Time: Tue 08 Nov 2016 04:

2016-11-08 18:19:32 1295

原创 读《UNIX 网络编程》有感

首先虽然整本书我还没有读完,但是根据前11章的话题,我基本上了解了网络编程的一个实质性的问题。如果网络通信和缓冲区读写都能正常进行,那么网络编程是没有这么多的问题的网络编程的复杂度主要来源于网络的不稳定性,以及网络传输数据的流量控制问题,也就是说,一个终端在没有任何消息的前提下是不可能知道另一个终端的信息的,所以,网络编程中经常会有所谓的反馈这个行为的出现,比如错误报告的返回。从上一段

2016-11-03 10:00:55 528

原创 信号

首先,信号这个概念不好理解,因为它本身涉及到了“中断”这个概念。“中断”概念的形象化描述(个人理解,可能会有偏差):CPU正在运行某个程序,突然,中断信号到达CPU指挥中心,CPU切换上下文,执行中断处理函数,中断处理函数执行完毕,CPU切换上下文,继续执行被中断的指令。其中,中断处理函数就是信号处理函数,信号可以有进程产生,也可以由内核产生。信号的目的地可以是进程本身,也

2016-11-01 14:44:03 197

转载 void (*signal(int sig, void (*func) (int))) (int)理解

转自:http://blog.csdn.net/sever2012/article/details/82812711.signal( int sig, void (*func)(int))signal是一个函数,有2个参数,第一个是int类型,第二个参数是一个函数指针2.void (*signal(int sig, void (*func) (int))) (int)signa

2016-11-01 13:35:19 588

原创 LINUX 进程查看指令

网络编程除了需要关心如何实现终端到终端的连接问题,还要关心内核和应用进程的数据传输问题,这方面就会涉及到操作系统的进程管理。这里我们以CENTOS为例,来介绍主要的用于查询进程的状态的指令。(参考《鸟哥的LINUX私房菜》第3版 17.3节)ps:这个是获取静态的进程状态信息的指令,常用的组合有:ps -l    : 仅仅查看自己的bash相关的进程ps aux  

2016-11-01 13:15:36 336

原创 小端字节序和大端字节序

这个字节的排列顺序主要就是小端和大端。网络传输使用的是大端字节序,主机有可能是小端字节序,也有可能是大端字节序,这个依照情况而定。举个例子:0x1234存储器地址:  小-------> 大小端字节序的排列:    4  3  2  1大端字节序的排列:    1   2  3  4

2016-10-31 18:46:44 278

原创 为什么TIME_WAIT的时间是2MSL

MSL指的是任何IP数据报能够在因特网上存活的最长时间。TIME_WAIT的状态是为了等待连接上所有的分组的消失。单纯的想法,发送端只需要等待一个MSL就足够了。这是不够的,假设现在一个MSL的时候,接收端需要发送一个应答,这时候,我们也必须等待这个应答的消失,这个应答的消失也是需要一个MSL,所以我们需要等待2MSL。(更多的内容参考 《UNIX 网络编程》第3版 2.7 节)

2016-10-31 11:21:09 4961

原创 Centos7搭建简单的FTP服务器

备注:本来这篇技术的文章是不该发表在QQ空间的,主要原因是博客被封了,莫名其妙!!!参考网站:http://jingyan.baidu.com/article/86fae346d536023c48121a50.html,http://blog.51yip.com/linux/1672.html1.安装vsftpd#yum -y install ftp vsftpd*2.

2016-10-29 15:37:26 1928

转载 netstat 基本用法

转自:https://linux.cn/article-2434-1.htmlNetstat 简介Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管

2016-10-28 10:15:11 659

原创 C语言 结构对齐

字节对齐一直困扰着我,具体为什么需要字节对齐也不是特别清楚,貌似是因为什么CPU的读取相关的问题导致的。我最近研究了一下,发现一个非常简单的对齐计算方式。假设其实地址是0,那么以后的每个变量的开始地址必须是其自身的长度的整数倍,还有,为了保证结构体中套用结构体的方式,所以结构体本身的长度需要是其最长元素的整数倍。struct A{short a;in

2016-10-27 18:56:08 313

原创 PYTHON 获取csdn的博客文章标题和描述

#!/usr/bin/pythonimport requestsfrom bs4 import BeautifulSoupimport sysimport reimport threadingreload(sys)sys.setdefaultencoding('utf-8')def deal_i(tag): title = tag.a.text.strip() desc

2016-06-14 23:26:09 605

原创 Python 获取百度的预览图片

#!/usr/bin/pythonimport requestsfrom bs4 import BeautifulSoupimport sysimport reimport jsonreload(sys)sys.setdefaultencoding('utf-8')class PicFromWeb: def set_url(self, url_pic): self.

2016-06-14 23:25:18 752

原创 Powershell 中直接运行 Python 的文件

首先, 这个问题并不是太难,但是这个问题困扰了我一个下午,我觉得有必要记录一下困扰的过程!我一直不明白为什么Powershell中可以直接启动.bat和.exe的文件,只要的我的系统Path的路径是设置好的,但是为什么不能直接云心.py的文件呢? 这个是涉及到原理性的东西,所以百度并不好使。后来想到一个问题“如何在Powershell终端执行Python文件”,也许这个问题可以带来一些答案,果不其

2016-05-20 18:59:38 13300 1

原创 FOR LEI LEI

#include <cassert>#include <cstdio>#include <cstring>#include <cstdlib>int num_cmp(const void * e1, const void * e2){ return (*(int *)e1) - (*(int *)e2);}void GetMinMax(const char * input, cha

2016-04-23 13:05:46 369

原创 Python 中删除列表中所有的空元素

while '' in listExample: listExample.remove('')

2016-03-31 15:27:10 52951 3

原创 C++ 构造函数

Class A { public: A(); ~A(); A(const A &other); A & operator=(const A &other); }

2016-03-17 13:59:50 319

原创 C++ 虚析构函数

当想通过基类指针来释放子类对象的时候,如果没有基类没有虚析构函数,那么子类对象的析构函数不会被调用!可能引发资源泄露!

2016-03-17 13:57:14 180

原创 C++ 不能重载的运算符

作用域操作符:::条件操作符:?:点操作符:.指向成员操作的指针操作符:->,.预处理符号:#, ##sizeof

2016-03-17 13:35:14 247

原创 Python 实用技巧

切换到当前py文件的目录:os.chdir(os.path.split(os.path.realpath(file))[0])

2016-02-18 10:15:44 287

原创 Python的学习感悟

首先,我要说的是Python并不适合初学者!虽然它标榜自几易学! 不适合的原因就是太高端了,很多应该懂得的东西都被隐藏了!!!如果你不懂这些东西,你就不知道计算机是如何运行的,你不知道计算机是如何运行的,你就不知道怎样写的代码才算是好的!!!简单的说,就是你不知道自己写的代码是不是高效的! 不过Python语言的设计还是符合语言学的,这点比Shell强多了!Shell 在我看来不能算是一门语言,

2016-01-15 14:11:03 3772

原创 Python编程的例子----股票数据接口

如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL: http://hq.sinajs.cn/list=sh601003,sh601001查询大盘指数,比如查询上证综合指数(000001): http://hq.sinajs.cn/list=s_sh000001

2016-01-13 14:41:38 38467

原创 获取天气信息的脚本

代码是使用python写的 核心部分是拼凑URL和HEADERS,这个URL是我个人对中国天气网的观察总结出来的!!!#!/usr/bin/python#--conding:utf-8--import requestsimport sysimport reimport times = str(time.time())s = re.sub(r'\.', '', s)if (len(s)

2016-01-13 00:01:26 836

原创 UNIX 回射程序

必需感慨一下,网络程序的细节真的是太多了,任何一个步骤都有可能出现问题!而且还要处理所遇到的问题!!!服务器:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>

2016-01-11 17:01:05 307

原创 VS DEBUG

vs 如何调式我就不说了,这里主要写一些我在工作的过程中遇到的一些问题!!!stl::map 中的 clear 在 Release 版本中运行会很快,但是,在Debug 中调式会很慢,我在google上找到了解决的方案,原文如下:`Trying setting the environment variable _NO_DEBUG_HEAP=1 in the program’s initial e

2016-01-06 11:25:57 384

原创 常见问题

Linux 服务程序如果要打开<1024的端口,需要root权限

2016-01-03 14:08:25 207

C++开发语言

C++是一门基础语言,这是一份对C++有较详细的指导,适合于初学者

2012-07-18

空空如也

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

TA关注的人

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