自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 Git

Git的.gitignore配置在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:*.a 忽略所有 .a 结尾的文件!lib.a 但 lib.a 除外/TODO 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TOD...

2017-10-24 18:19:00 104

转载 各种排序算法的时间复杂度

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。排序算法不稳定的含义是:在排序之前,有两个数相等.但是在排序结束之后,它们两个有可能改变顺序.比如说:在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面.这个时候,我们说这种算法是不稳定的.(只要有这种可能性,我们就说算法是不稳定的.)注...

2016-08-18 13:04:00 160

转载 map和vector的迭代器失效问题

当删除一个STL容器(比如map, vector)中的某个元素时, 会引起迭代器失效, 所以, 我们务必提高警惕。题目: 删除map<int, int>中value为5的倍数的元素。 该题看起来很自然很简单, 实则有迭代器失效的陷阱。如果对迭代器失效问题一无所知, 则很容易写出如下的错误代码: 1 #include <iostream>...

2016-08-16 21:11:00 414

转载 结构体,公用体,枚举类型的sizeof

结构体,公用体,枚举类型的sizeof1)枚举类enum型空间计算enum只是定义了一个常量集合,里面没有“元素”,而枚举类型是当做int来存储的,所以枚举类型的sizeof值都为41 enum color(red,pink,white,black)c;2 void main()3 {4 cout<<sizeof(enum); //值为...

2016-08-08 13:04:00 105

转载 socket 编程

“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主...

2016-07-28 13:21:00 105

转载 空间配置器

空间适配器,所谓空间适配器,就是用来管理内存的一个器具。对于STL来说,空间适配器是它可以正常工作的基础,也为它可以高效工作提供了动力。对于使用STL来说,它是不和用户直接打交道的,而是隐藏在一切STL组件之后,默默为各种内存申请提供支持的。对于c++用户来说,new和delete很熟悉,这两个函数可以分别完成内存的申请和释放,和c里面的malloc和free如出一辙,SGI 有一个标准...

2016-07-22 17:42:00 85

转载 线程

线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底...

2016-07-17 22:07:00 99

转载 Linux系统编程——进程替换:exec 函数族

在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可以通过./运行,让一个可执行程序成为一个进程。但是,如果我们本来就运行着一个程序(进程),我们如何在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存,使其执行起来成为一个进程呢?这里我们通过exec 函数族实现。exec 函数族,顾名思义,就是一...

2016-07-05 08:29:00 67

转载 linux粘着位

在linux中,如果对一个目录具有写权限,那么我们就可以在这个目录下创建删除文件。现在我们要创建这样一个目录,我们可以在这个目录里创建文件,但是其他用户不能删除这个文件。在这里就要用到一个特殊的权限:粘着位在linux中有三种特殊权限,分别为:SetUID = 4:在所有者设置的权限 SetGID = 2:在所属组设置的权限粘着位 = 1:在其...

2016-06-27 09:05:00 108

转载 exit函数与_exit

从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit 系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件。也就是图中的“清理...

2016-06-16 16:43:00 66

转载 文件操作(Linux系统调用)

1.创建文件int creat(const char *filename, mode_t mode)filename:要创建的文件名(包含路径,缺省为当前路径)mode:创建的文件的模式/访问权限常见模式:S_IRUSR 可读S_IWUSR 可写S_IXUSR 可执行S_IRWXU 可读、可写、可执行还可以直接使用数字来表示文件的访问权限:可执行 1可写 2可读 4上述三个值的和,如可读...

2016-06-14 09:53:00 96

转载 进程优先级,进程nice值和%nice的解释

用top或者ps命令会输出PRI/PR、NI、%ni/%nice这三种指标值,这些到底是什么东西?先给出大概的解释如下:PRI :进程优先权,代表这个进程可被执行的优先级,其值越小,优先级就越高,越早被执行NI :进程Nice值,代表这个进程的优先值%nice :改变过优先级的进程的占用CPU的百分比 (呵呵,这句好难理解是吧,不急慢慢来^_^)PRI是比较好理解的...

2016-06-10 09:17:00 329

转载 常用的操作系统进程调度算法

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进...

2016-06-10 09:15:00 221

转载 fork函数返回值问题

fork是最难理解的概念之一:它执行一次却返回两个值。 首先我们来看下fork函数的原型:  #include <sys/types.h>  #include <unistd.h>  pid_t fork(void);  返回值:  负数:如果出错,则fork()返回-1,此时没有创建新的进程。最初的进程仍然运行。  零:在子进程中...

2016-06-08 18:26:00 1973

转载 进度条的实现

实现一个简单的进度条,从0%-100%之间显示Linux下的输出有缓存,如果及时刷新显示, 需要调用下 fflush#include<stdio.h>voidproc(){charbuf[103];memset(buf,'',sizeof(buf));buf[0]='[';buf[1...

2016-05-31 14:57:00 106

转载 find命令

find命令一、find 命令格式1、find命令的一般形式为;find pathname -options [-print -exec -ok ...]2、find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执...

2016-05-20 16:04:00 119

转载 单链表的插入排序

1. 插入排序的基本思想:将一个节点插入到一个有序的序列中。对于链表而言,要依次从待排序的链表中取出一个节点插入到已经排好序的链表中,也就是说,在单链表插入排序的过程中,原链表会截断成两部分,一部分是原链表中已经排好序的节点,另一部分是原链表中未排序的节点,这样就需要在排序的过程中设置一个当前节点,指向原链表未排序部分的第一个节点。注意单链表插入排序和数组插入排序的不同:数组插入排序...

2016-05-10 20:17:00 371

转载 B树

1 #include<iostream> 2 using namespace std; 3 template<class K,int M=3> 4 struct BTreeNode 5 { 6 K _keys[M]; 7 BTreeNode<K, M>* _subs[M+1]; 8 ...

2016-05-03 14:18:00 111

转载 排序

1 计数排序 2 #include<iostream> 3 #include<assert.h> 4 using namespace std; 5 //void countSort(int *a, size_t size) 6 //{ 7 // assert(a); 8 // int m...

2016-04-27 18:34:00 70

转载 平衡树

平衡树中的AVL树平衡树是计算机科学中的一类数据结构。平衡树是计算机科学中的一类改进的二叉查找树。一般的二叉查找树的查询复杂度是跟目标结点到树根的距离(即深度)有关,因此当结点的深度普遍较大时,查询的均摊复杂度会上升,为了更高效的查询,平衡树应运而生了。 在这里,平衡指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。 几乎所有平衡树的操作都基于树操作...

2016-04-24 09:47:00 141

转载 二叉树线索化

线索二叉树按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。在改序列中,除第一个结点外每个结点有且仅有一个直接前驱结点;除最后一个结点外每一个结点有且仅有一个直接后继结点。这些指向直接前驱结点和指向直接后续结点的指针被称为线索(Thread),加了线索的二叉树称为线索二叉树。 当用二叉链表作为二叉树的存储结构时,因为每个结点中只有指向其左、右儿子结点的...

2016-04-20 21:17:00 91

转载 哈希表

1 #include<iostream> 2 #include<vector> 3 #include<string> 4 using namespace std; 5 template<class K, class V> 6 struct Node 7 { 8 K _ke...

2016-04-19 18:13:00 66

转载 二叉搜索树

1 #include<iostream> 2 using namespace std; 3 template<class K,class V> 4 struct BSTNode 5 { 6 K _key; 7 V _value; 8 BSTNode<K, V> *_left;...

2016-04-18 17:25:00 86

转载 广义表

广义表的实现: 1 #include<iostream> 2 #include<assert.h> 3 using namespace std; 4 enum Type 5 { 6 HEAD, 7 VALUE, 8 SUB, 9 }; 10 struct GeneralListN...

2016-04-17 20:59:00 90

转载 数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。 分析: 1.首先我们想到如果是一个排序好的数组,那么我们只需要遍历一次数组,统计好每个数字出现的次数,如果大于数组长度的一半就输出这个字。或者只需要直接输出array[N/2]的值即可。 2.如果是杂乱无章的数据我们可能回想先排序,然后按1操作即可。但是排序的最小时间复杂度(快速排序) ...

2016-04-14 16:03:00 81

转载 哈夫曼编码

1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 6 //Huffman树的节点类 7 typedef struct Node 8 { 9 char value; ...

2016-04-13 21:35:00 120

转载 二叉搜索树的后序遍历序列

面试题:二叉搜索树的后序遍历序列题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是刚返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。正确答案:例如输入数组{5,7,6,9,11,10,8},则返回true,因为这个整数序列是下图二叉搜索树的后序遍历结果。如果输入的数组是{7,4,6,5},由于没有哪棵二叉搜索树的后序遍历的结果是这...

2016-04-11 11:15:00 67

转载 二叉树的实现

1 #include<stack> 2 #include<queue> 3 #include<iostream> 4 using namespace std; 5 template<class T> 6 struct BinaryTreeNode 7 { 8   T _data; 9...

2016-04-10 11:52:00 80

转载 计数排序

计数排序是一种算法复杂度 O(n) 的排序方法,适合于小范围集合的排序。计数排序是一个类似于桶排序的排序算法,其优势是对已知数量范围的数组进行排序。它创建一个长度为这个数据范围的数组countArray,countArray中每个元素记录要排序数组中对应记录的出现个数。这个算法于1954年由 Harold H. Seward 提出。计数排序非常基础,它的主要目的是对整数排序并且会比普...

2016-04-10 11:08:00 64

转载 队列

1 #include<iostream> 2 3 using namespace std; 4 5 typedef int QueueElement; 6 7 struct Node 8 9 { 10 11 Node *next; 12 13 QueueElement data; 14...

2016-04-06 21:32:00 89

转载 栈的实现

该程序定义了链式栈(栈的链式存储结构)的存储结构,并实现了链式栈的基本操作,例如:构造函数、拷贝构造函数和赋值运算符重载函数的实现、析构函数、判空、插入、删除、获取栈顶元素,遍历。 1 #include<iostream> 2 3 using namespace std; 4 5 typedef int StackEle...

2016-04-05 11:20:00 73

空空如也

空空如也

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

TA关注的人

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