自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CSDN_dzh的博客

点滴记录

  • 博客(21)
  • 资源 (15)
  • 收藏
  • 关注

原创 排序算法——比较与代码汇总,对数器使用

排序算法效率比较不存在绝对意义上最佳的方法,这些排序方法分别适用于不同的条件下排序方法平均时间复杂度最坏情况下时间复杂度额外空间复杂度稳定性简单选择排序O(N2)O(N2)O(1)不稳定冒泡排序O(N2)O(N2)O(1)稳定直接插入排序O(N2)O(N2)O(1)稳定希尔排序O(Nd)O(N2)O(1)不稳定...

2018-12-17 12:53:01 463

原创 排序算法10——图解基数排序(次位优先法LSD和主位优先法MSD)

基数排序的概念基数排序是桶排序的一种推广。给定N个记录,每个记录的关键字为一整数,取值范围在0到M之间之前提到的桶排序是在N远大于M的情况下使用的。若如果M比N大很多,这时桶排序就需要M个桶,会造成巨大的控件浪费。而以R为基数对关键字进行分解以后,就只需要R个桶就可以了。例如:对于数字826如果根据基数10来分解,可以得到8、2、6三个关键字,其中8是最主位关键字,6是最次...

2018-12-17 12:03:36 5677 1

原创 排序算法9——图解桶排序及其实现

桶排序使用条件如果已知N个关键字的取值范围在0到M-1之间,而M比N小得多。这个时候就适合用桶排序。举个例子:对全校N个学生统计某一门课的成绩,成绩的范围在0到100之间,这个时候就适合用桶排序。额外的条件是它需要已知关键字的范围,并且关键字在此范围内是可列的,且个数不能超过内存空间承受的限度且N一定是远大于M的桶排序效率高的原因桶排序效率比一般的排序算法高:桶排序将为每...

2018-12-16 19:13:22 1316

原创 排序算法8——图解表排序

表排序用于待排元素不是一个简单的整数而已,每一个待排元素都是一个庞大的结构体,包含的元素非常复杂非常多。于是在排序的时候,移动这个结构体的时间是不能忽略不计的。而之前的7种排序算法都需要移动元素,这样移动这些结构体是非常麻烦且耗时的。那么表排序就是在排序的过程中,实际上是不需要移动这些原始数据的,要移动的只是指向它们位置的指针。间接排序:定义一个指针数组作为表(table),注...

2018-12-16 12:49:29 526 1

原创 排序算法7——图解快速排序(两种主元选择方法)以及CUTOFF时间测试

排序算法1——图解冒泡排序及其实现(三种方法,基于模板及函数指针)排序算法2——图解简单选择排序及其实现排序算法3——图解直接插入排序以及折半(二分)插入排序及其实现排序算法4——图解希尔排序及其实现排序算法5——图解堆排序及其实现排序算法6——图解归并排序及其递归与非递归实现基本思想通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则...

2018-12-14 21:19:28 3425 1

原创 排序算法6——图解归并排序及其递归与非递归实现

基本思想归并排序就是利用归并的思想来实现排序。原理是:假设初始序列有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2(+1)个长度为2(或1)的有序的子序列再两两归并……如此重复,知道得到一个长度为n的有序序列为止这种排序方法称为 2路归并排序归并排序递归方法实现下面看递归的实现,思路是先将数组通过mid拆成两半,首先对左边的子序...

2018-12-14 14:57:33 1416

原创 排序算法5——图解堆排序及其实现

堆的概念和性质堆,是一种特殊的二叉树,每个子结点的值总是小于(或者大于)它的父结点,相应的分为最大堆和最小堆堆,是一个完全二叉树,一般情况下堆排序都是用数组的方式实现这里可以看到,若以0开始编号大顶堆:arr[i] >= arr[2i+1] &&am

2018-12-12 20:43:23 1280

原创 排序算法4——图解希尔排序及其实现

基本思想希尔排序对插入排序进行改进,希望通过每次交换间隔一定距离的元素,达到排序效率上的提升基本原理是:将待排序的一组元素按一定的间隔分为若干个序列,分别进行插入排序。开始时设置的间隔比较大,在每轮排序中将间隔逐步减小,直到间隔为1,也就是最后一步是简单插入排序然后,在5间隔排序的基础上,做3间隔排序和1间隔排序(即直接插入排序)可以看到,较小间隔的排序仍然保持着较大间...

2018-12-11 14:01:48 706

原创 排序算法3——图解直接插入排序以及折半(二分)插入排序及其实现

一、直接插入的基本思想将待排序的一组序列分为已排好序和未排好序的两个部分初始状态时,已排好序序列仅包含第一个元素,未排好序的序列元素为除去第一个以外的n-1个元素然后,将未排好序序列中的元素逐一插入到已排好序的序列中如此往复,经过n-1次插入后,未排序序列中的元素个数变为0,排序完成。如下图所示代码及上下界如图从代码可以看出,空间复杂度上,简单插入排序仅需要常数个额外空间在...

2018-12-10 20:06:05 3885

原创 排序算法2——图解简单选择排序及其实现

基本思想通过n-i次关键字之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录作交换代码和上下界比较过程如下这样,最多经过n-1次交换,就能完成排序操作下面分析简单选择排序的时间复杂度无论最好或最坏的情况下,其比较次数都是一样多的,第i趟需要进行n-i次关键字的比较,总共需要比较∑(n-i)=n(n-1)/2次,i从1到n-1,而对于交换次数来说,当最...

2018-12-10 17:09:29 3197

原创 排序算法1——图解冒泡排序及其实现(三种方法,基于模板及函数指针)

冒泡排序是一种交换排序,基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止一、初级版首先是代码和上下界的确定初级版的思路是:让每一个关键字,都和它后面的每一个关键字作比较,反序就交换。这样,第一位置的关键字在一次循环后一定变成最小值可以看到,初级版的算法存在两个问题:首先,它并不是真正意义上的冒泡排序算法,因为它不是两两相邻做比较的,只是最简单...

2018-12-10 15:48:26 1458

原创 图解平衡二叉树(AVL树)代码实现

平衡二叉树的概念对于二叉树进行查找的时间复杂度是由查找过程中的比较次数来衡量的比较是从根结点到叶节点的路径进行的,取决于树的深度,树深在最好的情况下是O(logN)当二叉树退化成一棵单枝树的情况下,查找的复杂度将是线性的O(N)假定二叉搜索树中每个结点的查找概率都是相同的,就称查找所有结点的比较次数的平均值为“平均查找长度ASL”其中ASL = (∑深度k*该层的结点数)/总的结点...

2018-12-07 20:46:30 1080

原创 刷题笔记16——字符串循环、strcpy实现(考虑内存重叠)

思路char s[] = “hello”;strcpy(s+1, s); //应返回hell,但实际会报错,因为dst与src重叠了,把’\0’覆盖了所谓重叠, 就是src未处理的部分已经被dst给覆盖了, 只有一种情况:src <= dst <= src + strlen(src)C函数memcpy自带内存重叠检测功能, 下面给出memcpy的实现my_memcpy....

2018-12-28 19:06:47 343

原创 C++小知识——指针函数和函数指针、指针数组和数组指针示例

一、指针函数和函数指针1.1 指针函数指针函数,其实就是返回值为指针的函数例如:long *func(int)它是一个名为func,返回值为long *,参数为int的指针函数1.2 函数指针就像数组名是指向数组第一个元素的常指针一样,函数名是指向函数的常指针可以声明一个指向函数的指针变量,并且用这个指针变量去调用其他函数,此时,需要函数指针和这个被调用函数在返回值和参数...

2018-12-19 17:42:03 528

原创 通过gcc创建静态库.a、动态库.so及其使用

gcc的常用选项-v:查看gcc版本-c:只编译,生成.o文件,不进行链接-g:包含调试信息,方便使用gdb调试-D:编译时定义宏静态库的创建和使用这里使用命令ar,常用的选项是:-r:替换归档中已有的文件或加入新文件-t:显示归档文件的内容-x:从归档文件中解压文件,利用选项-o可以指定解压的文件,如ar -x libfunc.a -o add.o文件准备:// ...

2018-12-17 19:52:13 1451

原创 grep的基本使用及示例

grep 过滤来自一个文件或标准输入匹配模式内容通过管道作为grep的输入,使用方法grep [OPTION]… PATTERN [FILE]…egrep相当于grep -E选项-f:从文件每一行获取匹配模式示例:输出文件a和文件b都包含的行选项-v:取反,打印不匹配的行示例1:输出文件b相对于文件a特有的行示例2:去除空行或开头是#号的行^ 匹配以它后面的字符串开...

2018-12-17 18:28:25 228

原创 Shell正则表达式及实例

一、Shell 正则表达式基础正则表达式:BRE扩展正则表达式:ERE,扩展的表达式有+,?,|,(),grep选项-E. 匹配除换行符之外的任意单个字符注意是单个字符,比如匹配1234,就应当是1…4,中间是两个点^ 匹配以字符串开头的行可以看到,以abc开头的行都被匹配到,输出那一行$ 匹配以字符串结尾的行可以看到,以fg结尾的行都被匹配到,输出那一行...

2018-12-14 22:10:16 2222

原创 gdb打印信息2——打印内存的值以及使用$_

测试代码#include <stdio.h>int main (int argc, char *argv[]) { int i = 0; char a[100]; for (i = 0; i < sizeof(a); ++i) { a[i] = i; } return 0;}测试过程首先打上断点,跑起来这样,就完成了赋值操作然后就可以...

2018-12-07 14:39:41 1578

原创 gdb打印信息1——打印STL和数组中的内容

一、打印vector内容测试代码#include<iostream>#include<vector>using namespace std;int main(int argc, char* argv[]){ vector<int> vec(10); // 10 zero-initialized elements for (int i =...

2018-12-04 23:43:16 1019

原创 C++小知识——const详解示例(修饰变量、指针、引用和成员函数)

一、const的基本使用情况使用情况格式常变量const 类型说明符 变量名 (可互换const和类型说明符)常引用const 类型说明符 &引用名(可互换const和类型说明符)常对象类名 const 对象名(可互换const和类型说明符)常成员函数类名::函数名(形参表) const常数组类型说明符 const 数组名[大小](可

2018-12-04 21:17:07 523

原创 gdb入门实例2——断点调试实例

测试代码#include <stdio.h>int main (int argc, char *argv[]) { int sum = 0, i = 0; char input[5]; while (1) { scanf("%s", input); for (i = 0; input[i] != '\0'; ++i) sum = sum * 10 +...

2018-12-03 10:43:29 407

OpenCV3 + contrib + ippicv

OpenCV3 + contrib + ippicv OpenCV3 + contrib + ippicv

2018-11-12

数据库系统概念(原书第六版)——原整版带书签

数据库系统概念(原书第六版)——原整版带书签

2018-11-12

图解HTTP\TCPIP

图解HTTP,图解TCPIP

2018-11-12

effective_C++、STL源码剖析(中文完整版)、深度探索C++对象模型

effective_C++、STL源码剖析(中文完整版)、深度探索C++对象模型 effective_C++、STL源码剖析(中文完整版)、深度探索C++对象模型

2018-11-12

directshow

directshow+opencv双摄像头directshow+opencv双摄像头

2018-07-22

opencv相机标定程序

opencv相机标定opencv相机标定opencv相机标定opencv相机标定

2018-05-04

opencv调用摄像头并截图保存

opencv调用摄像头并截图保存opencv调用摄像头并截图保存opencv调用摄像头并截图保存

2018-05-04

cmake-3.4.0-rc3-win32-x86.exe

cmake-3.4.0-rc3-win32-x86.exe cmake-3.4.0-rc3-win32-x86.exe ) cmake-3.4.0-rc3-win32-x86.exe ) cmake-3.4.0-rc3-win32-x86.exe )

2018-05-03

基于opencv的SVM分类,三类

基于opencv的SVM分类,三类。基于opencv的SVM分类,三类。

2018-01-05

利用面积或周长进行轮廓筛选

opencv利用面积或周长进行轮廓筛选利用面积或周长进行轮廓筛选

2017-12-03

opencv_findcontours函数测试

opencv_findcontours函数父子,层级测试,opencv_findcontours函数父子,层级测试

2017-12-03

opencv3.1 ubuntu下安装包

opencv3.1 ubuntu下安装包opencv3.1 ubuntu下安装包opencv3.1 ubuntu下安装包

2017-12-02

ubuntu下opencv安装包

linux下opencv安装包安装包安装包安装包安装包安装包安装包安装包

2017-12-02

32x32的icon图标

32x32的icon图标,用于MFC按钮美化,包含灯泡\方向好多等等icon图标

2017-12-01

CButtonST类 按钮美化需要的BCMenu和BtnST

CButtonST类 按钮美化需要的BCMenu和BtnST,按钮美化需要的BCMenu和BtnST,帮助你美化你的MFC程序

2017-12-01

空空如也

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

TA关注的人

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