- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 排序算法:9.基数排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256//排序之基数排序(先分散,再收集)list<int>...
2018-08-14 10:33:08 239
原创 排序算法:6.插入排序之希尔排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256void shellsort(int a[], int n){ ...
2018-08-14 10:20:31 239
原创 排序算法:4.选择排序之直接选择排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256void swap(int *a, int *b){ int tem...
2018-08-14 09:26:57 250
原创 AVL树的插入和删除
#pragma once#include<stack>#include<iostream>using namespace std;template<class Type>class AVLTree;template<class Type>class AVLNode{ friend class AVLTree<Type...
2018-07-26 20:12:32 288
原创 排序算法:8.简单计数排序
计数排序的步骤 1、统计数组中每个值为i的元 素出现的次数,存入数组C 的第i项 2、根据C[i],整理排序结果//简单计数排序#define MaxNum 100void CountSort(int R[], int n){ int i, j, k; int C[MaxNum] = { 0 }; for (i = 0; i < n; ++i) { C[R...
2018-05-16 23:17:17 247
原创 排序算法:7.归并排序
归并排序思想 多次将两个或两个以上的有序表合并成一个新的有序表。 最简单的归并:是直接将两个有序的子表合并成一个有序的表。 //归并排序//2-路归并实现void Merge(int R[], int low, int mid, int high){ int *R1; int i = low, j = mid + 1, k = 0;//i,j,k分别为如图所示三部分...
2018-05-16 22:55:21 221
原创 排序算法:5.插入排序之直接插入排序(含二分法)
插入排序 基本思想: 每次将一个待排序的记录,按其关键 字大小插入到前面已经排好序的子表 中的适当位置,直到全部记录插入完 成为止。 介绍两种插入排序方法 : (1)直接插入排序(含二分插入排序) (2)希尔排序直接插入排序 1.假设待排序的记录存放在数组R[0..n-1]中 2.排序过程的某一中间时刻,R被划分成两个子区 间R[0..i-1]和R...
2018-05-16 00:13:40 422
原创 排序算法:3.选择排序之堆排序
//构造初始堆(大根堆)void shift(int a[], int low, int high){ int i = low; int j = 2 * i;//a[j]是a[i]的左孩子 int temp = a[i]; while (j <= high) { if (j < high&&a[j] < a[j + 1]) j++;//若...
2018-05-15 23:16:38 192
原创 排序算法:2.交换排序之快速排序
快速排序的基本思想: 1.在待排序的n个记录中任取一个记录(通常取第一个记录)作为基准,把该记录放入适 当位置后,数据序列被此记录划分成两部分,分别是比基准小和比基准大的记录。 2.再对基准两边的序列用同样的策略进行操作void Quicksort(int a[], int s, int t)//对a[s]到a[t]的元素快速排序{ int i = s; int j = t;...
2018-05-15 21:36:44 255
原创 排序算法:1.交换排序之冒泡排序
交换排序: 基本思想:两两比较待排序记录 的关键字,发现两个 记录的次序相反时即 进行交换,直到没有 反序的记录为止。 两种交换排序: (1)冒泡排序 (2)快速排序本文先介绍:冒泡排序 冒泡排序的基本思想 基本思想 : 1. 通过无序区中相邻记 录关键字间的比较和 位置的交换,使关键 字最小的记录如气泡 一般逐渐往上“漂浮” 直至“水面”。 2. ...
2018-05-15 21:08:03 264
原创 linux之I/O复用
//utili.h#pragma once#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/in...
2018-05-14 00:02:53 244
原创 类的构造,拷贝构造,析构,赋值(string类)
构造函数初始化表的使用规则:如果类存在继承关系,派生类必须在起初始化表里调用基类的构造函数类的const常量只能在初始列表里被初始化,因为他不能在函数体内用赋值的方式初始化类的数据成员的初始化可以采用初始化表或函数体内赋值两种方式,,这两种方式的 效率不完全相同非内部数据类型的成员对象应当采用第一种方式初始化,以获取更高的效率。例如 class A {… A(void); // 无参数构造函...
2018-05-05 20:32:46 528
原创 c++之内联函数
<<c++primer>>中讲到:inline函数 考虑下列 min()函数 int min( int v1, int v2 ) { return( v1 < v2 << v1 : v2 ); } 为这样的小操作定义一个函数的好处是: 1.如果一段代码包含 min()的调用, 那么...
2018-05-03 23:59:35 216
原创 文件操作函数
fwrite:Writes data to a stream.size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );fread:Reads data from a stream.size_t fread( void *buffer, size_t size, size_t count, FILE...
2018-04-27 22:13:38 405
原创 c注释转换
将文件中C语言注释(/**/)转换为C++注释(//),其它内容保持不变input.c// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; *///int j = 0;// 3.匹配问题/*int i = 0;/*xxxxx*/// 4.多行注释问题/*int i=0;in...
2018-04-27 19:40:14 190
原创 c++之继承与派生
1.类的继承与派生 类的定义: class 派生类名:继承方式 基类名1,继承方式 基类名2,...,继承方式 基类名n { 派生类成员声 }; 派生类的过程: 吸收基类成员 改造基类成员 添加新成员2.访问控制(公有,保护,私有继承) public修饰的类成员可以在类外被访问,而protected与private则不可以3.类型兼容原则:类型兼容规则...
2018-04-25 02:17:39 345
原创 c++知识点总结
1.类 1.类定义的两种形式 2.类和结构体的区别 3.函数重载,封装概念 4.this指针 5.public、protected的区别 6.类的作用范围 7.inline的原理,inline和宏区别 8.面向过程,面向对象区别2.构造函数 1.类和对象的区别 2.冒号语法、构造函数的执行流程(冒号语法需要性,对象初始化和赋初值) 3.对象的内存布局 4.析构函数的执行...
2018-04-24 21:57:12 225
原创 静态成员和友元
1.类的静态成员:静态数据成员 静态函数成员class point{public: point(int x = 0, int y = 0) :x(x), y(y) { count++; } point(point &p) { x = p.x; y = p.y; } ~point() { count--; } int getx() { retu...
2018-04-24 00:21:44 546
原创 c++复制构造函数
拷贝构造函数一类特殊的构造函数,具有一般构造函数的所有特性,其形参是本类对象的引用,起作用是使一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个对象。初始化对象的每个数据成员都复制到新建立的对象中 普通函数是在对象被创建时被调用,而复制构造函数在以下三种情况下都会被调用 1.当用类的一个对象去初始化该类的另一个对象时 2.如果函数的参数是类的对象,调...
2018-04-16 22:13:01 230
原创 linux之System V共享内存
共享内存 共享内存是系统创建的特殊地址空间,允许不相关的多个进程使用这个内存空间,即多个进程能够使用同一块内存中的数据。 共享内存与其他进程通信方式相比较,不需要复制数据,直接读写内存,是一种效率非常高的进程通信方案。但它本身不提供同步访问机制,需要我们自己控制。在LINUX中,只要把共享内存段连接...
2018-04-13 19:16:38 616
原创 Linux之SystemV消息队列
消息队列 消息队列是将消息按队列的方式组织成的链表,每个消息都是其中的一个节点。 消息队列的运行方式与命名管道非常相似。欲与其他进程通信的进程只要将消息发送到消息队列中,目的进程就从消息队列中读取需要的消息。需要注意的是,消息队列的长度以及每个消息的大小都是有限制的。Linux系统提供的消息队列操作函数主要有以下几个:int msgget(key_...
2018-04-13 19:09:43 326
原创 linux之信号量函数semget() semop() semctl()
信号量函数:semget() semop()semctl()1.semget()创建一个新的信号量集,或者存取一个已经存在的信号量集;原型:int semget(key_t key,int nsems,int semflg);返回值:如果成功,则返回信号量集的IPC标识符。如果失败,则返回-1: errno=EACCESS(没有权限) EEXIST(信号量集...
2018-04-12 00:12:39 1232
原创 虚拟机安装增强工具(virtualbox 和vmware都介绍)
一环境: 虚拟机:VirtualBox-5.2.8-121009-Win 系统:CentOS-7-x86_64-DVD-1611安装增强工具步骤:需联网1. 选择 设备->重新安装增强工具,桌面会出现一个光盘2. yum update3. yum install gcc4. reboot 会出现让选的进入的内核 ,(yum update)更新之后会出现内核版本为693...
2018-04-03 19:52:37 8101 1
原创 linux的vimrc配置文件
"========================================================================="" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console""" Last Change: 2010年08月02日 15时13分""" Version: 1.80"".
2018-03-23 21:09:59 783
原创 linux的压缩和解压缩
在Linux下创建与解压zip, tar, tar.gz,tar.bz2和rar文件压缩后的文件: archive_name.zip archive_name.tar archive_name.tar.gz archive_name.tar.bz2 archive_name.rar需要被压缩的文件:directory_to_compress zip格式: 压缩...
2018-03-16 22:25:03 268 1
原创 linux链接文件:硬链接和软连接
linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同: 硬链接:伪备份 软连接:快捷方式 1.硬链接:创建一个硬链接,增加引用计数(并没有真正创建文件,只是一个别名, 除了名字不一样,其他都一样时间日期等,硬链接的更改会更改源文件,源文件的更改会硬链接) 删除文件,引用计...
2018-03-16 21:59:05 884
原创 文件权限、用户、用户组相关命令
文件权限、用户、用户组相关命令 查看当前用户:whoami 添加用户:useradd 选项 用户名 或adduser -g 组名 指定所属组 -m 创建用户主目录 删除用户:userdel 选项 用户名 -r 删除用户主目录 修改、设置用户密码:passwd 用户名 更改文件、目录权限:chmod ...
2018-03-09 23:04:52 245
原创 cd命令
cd用来切换目录格式:cd +路径 cd .(当前目录) cd ..(上级所在目录) cd -(返回进入此目录之前所在的目录 切换) cd ~和cd(进去用户家目录) cd /(进入根目录) 绝对路径是从根目录开始的 相对路径是相对于当前的路径 家目录(home)和根目录 cd /: “/”表示的是根目录。 cd / ,即进入根目录. cd ~:进入用户的home目录...
2018-03-09 20:39:29 1022
原创 mv命令
mv(选项)(参数)--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;-b:当文件存在时,覆盖前,为其创建一个备份;-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动...
2018-03-09 20:12:05 340
原创 cp命令使用
拷贝文件/目录:cp [选项] 源 目的源 : 文件 目的不存在:创建目的 目的存在:覆盖(危险) 目的是已存在的目录:放到目录底下源 :目录(选项为 -r 递归拷贝) 目的不存 在:创建目的 目的存在:把目的放到目的目录下说明 : -:普通文件 X:不存在 D:目录Cp 源 目...
2018-03-09 19:28:50 1866
原创 BST树
#pragma oncetemplate<class Type>class BSTree;template<class Type>class BSTNode{ friend class BSTree<Type>;public: BSTNode() :data(0), leftChild(NULL), rightChild(NULL) {}...
2018-03-07 21:04:54 313
原创 红黑树插入
红黑树的性质: 1.每个节点不是红就是黑 2.根节点为黑色 3.如果节点为红,其子节点必须为黑 4.任一节点至NULL(树尾端)的任何路径,所含之黑节点树必须相同 性质总结一句话:一头一脚黑,黑同红不连 规则1就不用说了,由规则2,root->color=NULL;由规则4,可知新增节点为红;由规则3可知,新增节点之父必为黑, 当新节点插入不符合上述规则...
2018-02-24 18:04:09 257
原创 迅雷面试哈希表
#if 1//现在有一个用来存放整数的Hash表,Hash表的存储单位称为桶,每个桶能放3个整数,//此Hash表的基桶数目为素数P,Hash表的hash函数对P取模。代码定义如下://当一个桶中要放的元素超过3个时,则要将新的元素存放在溢出桶中,//每个溢出桶也能放3个元素,多个溢出桶使用链表串起来。#define P 7#define NULL_DATA -1#define B
2018-02-07 21:48:35 583
stl源码剖析
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人