- 博客(16)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 希尔排序
希尔排序1、简介希尔排序(Shell Sort),也称为递减增量排序算法,是插入排序的一种高速而稳定的改进版本。希尔排序是基于插入排序的以下两点性质而提出改进方法的:1.插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;2.但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位。2、代码代码如下:template<class T>int ShellSort(T *aArray, int aCount){ if(0 == aCount || N
2020-12-17 12:02:47
347
原创 插入排序
插入排序1、简介直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕。在整个过程中,前面的元素是已经排序好的列表,后面的元素为待排序处理。2、代码代码如下:template<class T>int InsertSort(T *aArray, int aCount){ if(0 == aCount || NULL == aArray) return sERROR
2020-12-17 11:57:21
188
原创 快速排序
快速排序1、简介快速排序(QuickSort):通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。2、代码代码如下:template<class T>int GetStandard(T *aArray, int aLow, int aHigh){ if(NULL == aArray) //如果数组为空 return sERROR; //基准数据 T key = aArray
2020-12-17 11:45:55
128
原创 冒泡排序
冒泡排序1、简介排序过程中,所有元素朝各自最终位置亦步亦趋的移动过程,犹如气泡在水中的上下沉浮,冒泡排序(bubblesort)算法也因此得名。2、代码代码如下:template<class T>int BubbleSort(T *aArray, int aCount){ if(0 == aCount || NULL == aArray) return sERROR; bool sortFlag = false; //排序标志,初始化为false while(!so
2020-12-17 11:36:27
148
原创 ZooKeeper C 基础实例
一:简介本实例是最简单的ZooKeeper实例,使用基本的API函数实现简单的增删改查ZooKeeper节点。所使用函数的详细介绍在上篇,链接如下:https://blog.youkuaiyun.com/xiaoliantongtong/article/details/99954363二:实例实例先创建了一个ZKClient类,用于对ZooKeeper的基本操作;1:ZKClient.h...
2019-08-21 19:37:33
1328
1
原创 ZooKeeper C API 常用函数详解
1:注意: 1:与ZooKeeper进行任何操作之前,我们首先需要一个zhandle_t句柄。 2:函数返回值类型:返回类型 含义 ZOK 正常返回 ZSYSTEMERROR 系统或服务器端错误(System and server-side errors),服务器不会抛出该错误,该错误...
2019-08-21 13:31:38
3133
原创 GDB调试
一:GDB介绍:1:GDB完成的的调试任务:1:设置断点;2:监视程序变量的值;3:程序的单步执行;4:修改变量的值;2:在可以使用GDB调试程序之前,必须只用-g选项编译源文件。可在makefile中定义CFLAGS变量: CFLAGS=-g二:GDB使用文件的生成:1:为了能够对程序进行调试,需要在编译的执行文件包含调试信息,在编译时候需要指定[-g]参数;...
2019-02-26 13:42:16
955
原创 Shell脚本
一:定义:使用Vim编辑器把Linux命令按照顺序依次写入到一个文件中,这就是一个简单的脚本了二:接收用户的参数:$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第N个位置的参数值;echo "当前脚本名称为$0"echo "总共有$#个参数,分别是$*...
2019-02-26 13:15:11
461
原创 Linux文件压缩打包
一:压缩原理: 1:总述 目前使用的计算机系统,是使用字节单位来计量的;事实上,计算机最小的计量单位应该是位;一个字节等于八位; 由于我们记录的数字是1,考虑计算机的二进制,1会在最右边占据1位,而其他7位将会自动填上0,那7位应该是“空位”才对;利用一些复杂的计算方式,将这些没有使用到的空间“丢”出去,让文件占用的空间变小,这就是压缩技术; ...
2019-02-26 11:42:35
360
原创 类型别名,auto类型说明符,decltype类型指示符
类型别名: 一:使用关键字typedef, typedef double wages; //wages是double的同义词 typedef wages base , *p ; /
2017-08-23 15:02:16
295
原创 C++复合类型
复合类型在C++里有好几种,在这里主要介绍两种:引用和指针 引用:是C++11中新增加的一种。用来为对象起另外一个名字,引用类型引用另外一种类型。 定义引用时,程序会把引用以及它的初始值绑定在一起,而不是你将初始值拷贝给引用。 无法将引用重新绑定到另外一个对象,因此引用定义时必须要初始化。
2017-08-23 10:51:42
1062
1
原创 OpenThreads线程管理
OpenSceneGraph中线程(OpenThreads)的作用多种多样,涉及到信号量机制,同步异步锁等多种知识点。OpenThreads:Threads:创建线程,类似于windows中的_beginthread,Mutex :创建互斥,类似于windows中的CreateMutex,用于针对多个线程访问同一资源 情况。Condition:创建条件,
2017-08-02 18:49:27
1513
原创 基本内置类型
一:基本数据类型:一:算术类型1.整型2.浮点型二:空类型 算术类型类型含义最小尺寸bool布尔类型未定义char字符8位wchar_t宽字符16位char16_tUnicode字符16位char32_tUnicode字符3
2017-07-30 10:47:15
381
原创 C++控制语句
C++语句一般是顺序执行的,而控制流语句,可以写出更为复杂的执行路径。一:while语句while语句反复执行一段代码,直至给定条件为假为止。例如:#includeint main(){int sum = 0,val = 1;//只要val的值小于等于10,while循环就会持续执行while(val {s
2017-07-30 10:44:22
1430
转载 走进图形学世界第一课——Bresenham算法
在了解Bresenham算法之前,首先,我们要明确,计算机中像素点坐标的表示规则。如下图所示: 要注意的是,图中x轴方向向右,y轴方向向上;而计算机中默认坐标系中x轴向右,y轴向下,原点在左上方。所以在计算机做图中要注意转换,或者可以将计算机中的坐标系转换成我们平时常用的坐标系。坐标系转换代码如下: //获取客户区信息 CRect
2017-07-23 22:10:36
1285
原创 初识C++
一:编译运行阶段编译器类型:1.命令行界面 2.集成IDE编译器不同编译器使用不同的后缀名约定:.cc,.cxx,.cpp,.cp,.c;这里以VS2010为标准,VS2010编译器的源文件为 .cpp文件。编译链接的原理与过程:其一:通过预处理,将所有的.cpp文件全部处理为翻译单元,且翻译单元并不显示在文件目录里,它在各个编译器内自己完成。
2017-07-23 22:01:54
233
C++光线跟踪
2018-03-12
osg动画效果osgAnimation
2017-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人