自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kunikida的专栏

启程,希望不算晚;成长,希望不会断

  • 博客(32)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 git

git loggit reset --hard commit_id git rm --cached

2015-06-13 23:03:25 479

原创 Linux systemd

一、systemd的诞生天下武功,唯快不破。所以有了systemd。是为了更快的开机?但systemd做的远远不止这些,或者说做了太多太多了。他似乎接管了整个linux的管理。systemd接管了大致如下事情:1.Linux的开机启动,取代了init2.提供日志服务,接管syslog3.为Linux提供了快照(目前的systemd还不完善)4.网络管理服务,取代了service

2015-06-05 00:15:47 1457

原创 Docker学习笔记(一):Docker的三个基本概念

Docker 包括三个基本概念镜像(Image)容器(Container)仓库(Repository)理解了这三个概念,就理解了 Docker 的整个生命周期。镜像ImageDocker 镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。镜像可以用来创建 Docker 容器

2015-05-24 20:37:04 4719

原创 getopt()用法详解

getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0时,getopt

2013-05-13 21:50:46 23181

原创 getopt()

getopt被用来解析命令行选项参数。#include       extern char *optarg;  //选项的参数指针      extern int optind,   //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。       extern int opterr,  //当opterr=0时,getopt不向stderr输出

2013-05-13 20:41:55 13413

原创 PostgreSQL 快速入门

PostgreSQL 快速入门 在Ubuntu系统中怎样安装和配置PostgreSQL服务器 介绍 PostgreSQL是一个强大的关系型数据库管理系统,它按照BSD许可[1]发行。PostgreSQL包含很多高级的特性,拥有良好的性能和很好的适用性。PostgreSQL绑定了很多种编程语言,例如 C, C++, Python, Java, PHP, Ruby等 ,它可以操

2013-04-24 21:53:54 1582

原创 postgresql 常用命令

postgresql 常用命令(1)用户实用程序:createdb 创建一个新的PostgreSQL的数据库(和SQL语句:CREATE DATABASE 相同) createuser 创建一个新的PostgreSQL的用户(和SQL语句:CREATE USER 相同) dropdb 删除数据库 dropuser 删除用户 pg_dump 将PostgreSQL数据

2013-04-24 21:52:01 10453

转载 有了malloc/free为什么还要new/delete?

malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。  对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于m

2012-09-05 21:39:15 804

原创 C++关键字static的用法

1、cpp文件中的全局静态变量全局内的声明:static int a=0;这样的静态全局变量就只能被该cpp文件所用,不能被其他cpp文件共享。若不声明static:int a=0;这样的全部变量既不能保证a能被其他cpp文件共享,又不能保证不能被其他cpp文件共享。不建议这样使用,最好加extern:extern int a=0;2、静态局部变量int

2012-09-05 14:21:59 745

原创 类String的构造函数、析构函数和赋值函数

拷贝构造函数和赋值函数的区别:看看下面代码,仔细想想两者的区别。拷贝构造函数是在定义一个对象的时候调用的,如Class String{ //....};String a=b;//b为一个String类型的对象或者String a(b);赋值函数是在用一个类的实例去赋值给另一个实例的时候调用的,如String a;a=b;类String的构造函数、析构

2012-09-04 21:14:24 1033 1

原创 strcpy函数与memcpy函数的区别及其函数实现

先看函数实现:显然两函数的原型都不一样:void *memcpy(void * ,const void * ,size_t )与char *strcpy(char * ,const char * );void *memcpy(void *dst,const void *src,size_t count){ if(dst==NULL || src==NULL) return NU

2012-09-03 16:24:53 1143

原创 排序(之选择排序)

选择排序是不稳定排序,平均算法复杂度和最坏算法复杂度为:O(n^2);空间复杂度为O(1);稳定性说明:举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法#includevoid select_sort(int a[],int n){ int i,j,pos,tmp

2012-08-30 20:11:05 818

原创 排序(之希尔排序)

希尔排序是不稳定排序,平均算法复杂度和最坏算法复杂度为:O(nlgn),最好的情况为O(n);空间复杂度为O(1);希尔排序是插入排序的一种,且希尔排序的算法复杂度大大低于插入排序,只是由稳定变为不稳定的排序。#includevoid Shell_Insert(int a[],int d,int n){ int i,j,rc; for(i=d;i<n;i++) { i

2012-08-30 17:07:15 725

原创 排序(之插入排序)

插入排序是稳定的排序,平均情况和最坏情况的算法复杂度为O(n^2),最好情况为O(n);空间复杂度为:O(1)。#includevoid InsertSort(int a[],int n){ int i,j,rc; for(i=1;i<n;i++) { if(a[i-1]>a[i]) { rc=a[i]; j=i; while(j-1>=0 && rc<

2012-08-30 17:04:09 910

原创 排序(之堆排序)

堆排序是不稳定的排序,平均情况和最坏情况的算法复杂度为O(NlgN),空间复杂度为:O(1)#include#includevoid swap(int &a,int &b){ int tmp; tmp=a; a=b; b=tmp;}void HeapAjust(int a[],int i,int n){ int rc=i; int rs=a[rc]; fo

2012-08-30 14:19:23 1195 2

原创 排序(之冒泡排序)

冒泡排序是稳定的排序,但是算法复杂度较高,平均和最差都是:O(n^2),空间复杂度为:O(1)#includevoid bubble_sort(int a[],int n){ int i,j,tmp; for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(a[j]>a[j+1]) { tmp=a[j];

2012-08-29 22:15:25 656

原创 排序(之快速排序)

快速排序是不稳定的排序,但是算法复杂度低,平均算法复杂度为:O(nlgn),最差为O(n^2)。空间复杂度为:O(lgn)#includeint PARTITION(int a[],int i,int j){ int key=a[i]; //记录关键字 while(i<j) { while(i<j && key<=a[j]) //向右扫描 j--; /

2012-08-29 21:59:34 825

原创 在二元树中找出和为某一值的所有路径(树)

在二元树中找出和为某一值的所有路径(树)题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树   10     / \    5  12    / \      4   7   则打印出两条路径:10, 12和10, 5, 7#include#

2012-08-19 21:54:30 734

原创 把二元查找树转变成排序的双向链表

把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。    10   /  \  6   14 / \  / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16。思路:中序遍历二叉查找树,因此结点按从小到大顺序访问,假设之前访问过的

2012-08-16 16:43:26 628

原创 最长公共子序列LCS(动态规划基础)

动态规划并不是一种算法,而是一种解决问题的思路。典型的动态规划问题,如最长公共子序列(LCS),最长单调子序列(LIS)等。动态规划分为四个步骤:1.判断问题是否具有最优子结构这里以LCS为例,X={x1,x2,...,xi};Y={y1,y2,...,yj}。最长公共子序列Z={z1,z2,...,zk};①如果xi=yj,那么zk=xi=yj,且Zk-1是序列Xi-1和Yj-1

2012-07-08 13:44:09 4010

原创 链表和数组的区别在哪里?

我一直有这样的困惑:链表和数字的区别在哪里?数组是线性结构,可以直接索引,即要去第i个元素,a[i]即可。链表也是线性结构,要取第i个元素,只需用指针往后遍历i次就可。貌似链表比数组还要麻烦些,而且效率低些。想到这些相同处中的一些细微的不同处,于是他们的真正不同处渐渐显现了:链表的效率为何比数组低些?先从两者的初始化开始。数组无需初始化,因为数组的元素在内存的栈区,系统自动申请空间。而链表的结

2012-06-12 21:41:50 20410 4

原创 一步一步写算法(之快算排序)

//快速排序#includevoid quick_sort(int [],int ,int);int _qsort(int [],int ,int );int main(){ int len,i,low,high; int array[]={49,38,65,97,76,13,27}; len=sizeof(array)/sizeof(array[0]); low=0;

2012-05-17 20:16:53 857

原创 一步一步写算法(之哈夫曼编码)

哈夫曼树也称最优二叉树,顾名思义,即所有叶子结点的带权路径长度最短。对数据进行哈夫曼编码,可以大大减少数据传输量。1.设计Huffman Tree的结点结构,即Huffman Node,并创建Huffman Node//huffman节点结构typedef struct _HUFFMAN_NODE{ char str; //需编译的字符 double frequence; //字

2012-05-08 21:51:00 778

原创 一步一步写算法(之静态查找)

折半查找:适用于顺序序列int BinSearch(int p[],int key){ int low,high,mid; low=1; high=length_p; while(low<=high){ mid=(low+high)/2; if(p[mid]==key) return mid;//查找成功 else if(p[mid]>key) high=

2011-12-13 19:12:18 651

原创 一步一步写算法(之Hanoi塔问题)

n阶Hanoi塔问题:假设有3个分别叫X,Y,Z的塔,在塔X上插有n个直径大小个不同的圆盘,编号为1,2,3,...,n。要求将这n个圆盘依次移动到Z塔。void Hanoi(int n,char x,char y,char z){ if(n==1) move(x,1,z); //将编号为1的圆盘从x塔搬到z塔 else{ Hanoi(n-1,x,z,y); //将编号为1到

2011-11-23 20:32:05 1089

原创 一步一步写算法(之入栈出栈)

#include#include#define STACKINCREMENT 10//每次追加栈空间的大小typedef struct{ StackElemType *top;//栈顶指针 StackElemType *base;//栈底指针 int stacksize;//目前为栈分配的空间,以元素为单位}Stack;//栈是否为空bool StackEmpty(Stack

2011-11-16 20:34:40 2993

原创 一步一步写算法(之链表的删除与插入)

//结点结构typedef struct Node{ int data; Node *next;}LinkList;//删除结点void DeleteNode(LinkList *L,int data){ LinkList *p,*p1; p=L; p1=p->next; if(!p1){ printf("LinkList Empty"); exit(1);

2011-11-16 16:02:50 763

原创 进制转换的一种思路两种实现方法

关于进制转换的问题都老掉牙了,方法有很多,但思路大都一样:将每次除以8后的余数余数倒序输出(这里以10转8为例)。因而进制转换就变味倒序输出的问题,倒序的方法有很多,比如直接用数组存储余数,然后数组要倒序输出就很简单了,本文就不赘述了。本文重点讲后两种方法:1.递归输出;2.使用栈结构存和取,结果很自然为逆序。方法一、递归#include#includevoid f(

2011-11-15 21:28:09 970

原创 一步一步写算法(之创建顺序链表)

//节点的结构typedef struct node{ int data; node *next;}LinkList;//创建顺序表了链表,n为链表长度LinkList *Creat(int n){ LinkList *Head; LinkList *p,*tail; Head=(LinkList *)malloc(sizeof(LinkList)); if(!Head)

2011-11-11 16:48:39 897

原创 一步一步写算法(之创建逆序链表)

//节点的数据结构typedef struct node{ int data; node *next;}LinkList;//逆序生成链表L:L为头节点,n为链表长度void CreatList(LinkList *L,int n){ LinkList *p; L=(LinkList *)malloc(sizeof(LinkList)); L->next =NULL;

2011-11-11 14:55:55 641

原创 C++中的内存划分及管理

在C++中,把内存划分为四种存储区:1、栈2、堆3、全局/静态存储区域4、一个专门用来存放常量的区域栈:C++中用 的最多的存储结构,函数体中定义的变量通常放在栈上。它的申请和释放有系统专门管理,效率非常高,和堆比起来,不易产生内存碎片。堆:用malloc,new等分配的得到的得到的变量在堆上,而且要用free,delete手动释放动态申请的空间。堆申请的大小比栈大

2011-10-31 20:19:13 600

原创 strlen与sizeof的区别

strlen()计算的是字符串的字符数,且不会计算字符串结束符‘\0’,如n=strlen(“abcde”),此处n=5;sizeof()计算的是变量所占字节数,在计算字符串时,会把字符串结束符‘\0’,n=sizeof("abcde"),此处n=6;特别注意的是,不论指针指向何类型,其所占字节数均为4。即一次寻址的长度。如char *p="abcde",n=sizeof(p),此处n=4

2011-10-21 18:51:51 690

数据库课件

数据库课件,很全,从零开始教你数据库,而且还有几个章节专门讲解教务管理系统项目。不错。希望对大家有用

2011-12-29

C++11标准(高清版)

C++最新标准,非扫描版,希望和大家分享,对大家有用

2011-11-01

Visual C++ 6.0 用户界面制作技术与实例

Visual C++ 6.0 用户界面制作技术与实例,不求分数,只求对大家有所帮助。谢谢

2011-10-31

VC实例教程,超赞!

本人上传东西从来不要分数,只为了和大家分享。有一定vc基础的人可以看看,很适合进阶学习的项目,分析和代码都有

2011-10-26

VC技术内幕第五版

VC技术内幕第五版,不求分数,只求和大家分享。希望对大家有用

2011-10-25

MFC深入浅出

从来不求分数。书的内容建立在对MSDN和MFC SOURCE CODE的大量分析上,该书对于希望学习MFC的人来说,是较有价值的。

2011-10-10

C++经典算法100例

不求分数,只求和大家分享。若把文本中的100例自己每个都琢磨琢磨,你会进步很多的。

2011-10-09

用VC++编写USB接口通信程序

通用串行总线 人机接口 API vc++

2011-10-08

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

TA关注的人

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