自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FreeeLinux's blog

没有迷路的人

  • 博客(19)
  • 资源 (3)
  • 收藏
  • 关注

原创 归并排序递归及非递归实现(自然合并排序)

一:归并排序普通的归并排序递归实现比较简单,就不在此赘述,一看就懂。下面贴上代码。#include using namespace std;template void merge(T arr[], const int start, const int middle, const int end, const int size){

2016-09-29 19:07:10 4814

原创 经典算法之棋盘覆盖问题 --分治法

一:算法分析棋盘覆盖问题要求在2^k * 2^k 个方格组成的棋盘中,你给定任意一个特殊点,用一种方案实现对除该特殊点的棋盘实现全覆盖。建立模型如图:解决方案就是利用分治法,将方形棋盘分成4部分,如果该特殊点在某一部分,我们就去递归他,如果不在某一部分,我们假设一个点为特殊点,同样递归下去,知道全覆盖。左上角的子棋盘(若不存在特殊方格):则将该子棋盘右下角的那个方格假设为特殊方

2016-09-29 11:44:51 34855 3

原创 全排列问题

一:全排列问题算法描述如下:举例: 345的全排列分别为 345 354    435 453    534  543, 可见将整组数中的所有的数分别与第一个数交换,这样就总是在处理后n-1个数的全排列。又举例:45的全排列有 45 54 可见将第一个数分别与后面的数交换后输出即为45的全排列。所以,对于一个很长一帮子的数,如123412414132,我们需要将1与后面所有的数交换

2016-09-28 20:26:03 576

原创 N皇后问题 --递归及回溯解决方案

一:介绍n 皇后等价于要求在一个 n*n 的棋盘上放置 n 个皇后,使得任何两个皇后都不能被放在同一行或同一列或同一斜线上。二:算法设计对于 n 后问题,我们用 n 元组 x[1:n] 表示它的解。其中 x[i] 表示皇后放在棋盘的第 i 行的第 x[i] 列。由于左上角到右下角的主对角线及其平行线上(斜率为-1),元素2个下标值的差(行号-列号)相等。同理,斜率为+1的斜线上,元

2016-09-28 17:34:52 2682

原创 IO多路复用 --select、poll、epoll模式

一:select模式头文件:#include #include #include #include #include #include #include #include #include #define MAX_LINE 1024#define MAX_SIZE 10#define IP_ADDR "127.0.0.1"#define PORT

2016-09-27 11:27:35 766 1

原创 求最大子序列长度及最大字段和 --动态规划法C++语言

证明我就不够出了,我参考了这位博主的博客点击打开链接,以及这是麻省理工算法导论关于该问题的讲解视频点击打开链接,我就是参看以上看明白的。以下代码目的仅为记录和分享,采用C++语言描述腾讯出的题目是这样的:一:递归描述:#include #include #include using namespace std;int max_csubstr(const string

2016-09-23 13:46:15 3261

原创 单链表的逆置 --C语言泛型编程

本文章采用泛型算法实现了单链表的建立与逆置。代码如下:一:头文件#ifndef _LIST_H#define _LIST_H#include #include #include typedef struct list_node{ void *data; struct list_node *next;} node_type, *node

2016-09-22 15:56:07 769

原创 大小端模式解析(联合体union)

以前一直知道大小端,很久不做题又把大端和小端记混了,这次来总结一下,以后再也不会混了。一:什么是大小端大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中

2016-09-22 12:24:29 3846 1

原创 Python操作MySQL实例讲解

一:如何使用我们通常使用mysql-python,有以下步骤:1.首先导入MySQLdb模块,import MySQLdb。2.通过调用其中的connect连接,通常使用root登陆,密码我这里用的是默认密码,为空。3.获得操作cursor。这相当于一个游标或指针,类似文件指针,总是指向数据库下一条或理解为你即将操作的位置。4.进行相关操作。例如利用execute方法,传入相关

2016-09-21 10:58:54 1616

原创 Python中的装饰器详解

一:什么是装饰器装饰器是一个函数,其主要用途是包装一个函数或类。这种包装的目的主要是透明地修改或增强被包装对象的行为,表示装饰器语法的特殊符号是@,如下所示:@decoratedef square(x): return x*x二:装饰器有什么用如果在一个函数有装饰器来修饰,当要执行该函数时,转到执行装饰器函数,就可以实现在欲执行的函数前后添加相应的功能。装饰

2016-09-20 17:04:47 488

原创 Linux有名管道namepipe --C和Python两种实现方式解析

一:什么是有名管道不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,通过FIFO不相关的进程也能交换数据。值得注意的是,FIFO严格遵循先进先出(first in first out),对管道及FIF

2016-09-19 21:54:23 2241 1

原创 Linux管道pipe -- C和Python两种实现方案解析

一:什么是管道管道是Linux 支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在于内存中。数据的

2016-09-19 20:22:46 3646

原创 一个简单线程池的实现 --C语言

本文的代码实现了一个简单的线程池,并利用C/S模型将客户端所发送的数据进行简单的计算。一:什么是线程池  我是这么理解的,池是计算机科学中一种典型的机制,如STL里面的内存池,数据库连接池,还有进程池或线程池。这些池建立的目的都是为了避免频繁系统调用所带来的开销。我们这样想,如果我们事先转备好一大块所需要的内存,或者线程,以后我们要用到时就直接拿来用就好了。不够的话再执行其他解决方案。

2016-09-18 13:11:46 1740

原创 windows下Mysql数据库安装错误解决方案Install/Remove of the Service Denied

安装Mysql的过程中,我出现了两个头疼性的问题;一是出现这样:Install/Remove of the Service Denied!解决方案是这样的,在配置文件my-default.ini里面加入basedir和datadir,如图:上面两句本来是没有的。二是这样的问题:1045 access denied for user 'root'@'localhost'

2016-09-17 21:00:36 1644

原创 C/S模型 多线程服务器实现简单计算工作并回馈客户端

本位代码实现客户端输入相应需要计算的表达式,服务器做简单计算,并将结果返回。头文件:#pragma once#include #include #include #include #include #include #include #include #include #include #include #define INIT_THREAD_NUM 5#de

2016-09-17 20:05:25 1088

原创 多线程编程之生产者和消费者模型

代码一:#include "../utili.h"#define MAX_ITEM 10000#define MAX_THREAD 5void *produce(void *), *consume(void *);struct { pthread_mutex_t mutex; int buff[MAX_ITEM]; int

2016-09-16 19:31:44 1111

原创 网易笔试题--寻找优雅点

今天在做网易笔试题的时候吃了一个血的教训,没有注意到隐式转换。  题大概是这样的,给一个圆的周长,求圆上横纵坐标都为整数的点。  如: 25 (0,5)(0,-5)(5,0)(-5, 0)(3,4)(3,-4)(4,3)(-4,3)共8个。我是采用这么做的,目前这样做,有更好办法我会更新此篇博客的。代码如下:#include #include #include usi

2016-09-12 21:32:16 1131 1

原创 删除数组中重复元素--哈希表方法和set方法

忘了是哪个的面试题,说删除数组中重复元素,给了一组数, [90, 91, 1, 2, 90, 5, 91], 输出 [90, 91, 1, 2, 5],类似这种情况,我给出了两种解决方案。其实最简单的应该是申请一个等大的数组,去循环遍历,我没有采用。我采用以下两种方法。一:相似因子法(我自创的)按照每个数的个位划分,个位一共有0~9十种情况,我将个位相同的放在同一个链地址中,只需申请一

2016-09-07 11:46:48 2573

原创 C/C++语言中的未定义行为

今天写代码时,遇到了一个小问题,然后用程序验证了下,事实证明不是所有的事情都跟自己想的一样,许多事情都是编译器决定的。如下面的等号操作:#include using namespace std;int main(){ int i(1); int array[5] {0}; array[i++] = i; //此时编译器从左到右计算,而不是从右

2016-09-01 17:59:38 920

muduo网络库

如果你用其他的编译不通过,就用这个吧。

2016-12-01

MySQL-python-1.2.5.win64-py2.7.exe

有效解决安装mysql-python时遇到的error: Unable to find vcvarsall.bat问题,以及 %1 win 32 问题

2016-09-20

valgrind-3.10.1

Linux内存泄漏检测工具

2016-08-11

空空如也

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

TA关注的人

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