自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 几种排序算法的比较

1.分类:非线性时间比较类排序:通过比较来决定元素间的相对位置关系,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间比较类排序:不通过比较来决定元素间的相对位置关系,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间比较类排序。2.复杂度3.算法相关概念稳定:如果arr[i] = arr[j],i < j,排序后arr[i],arr[j]位置没变化。不稳定:如果arr[i] = arr[j],i < j,排序后arr

2020-09-13 22:22:33 143

原创 插入排序

1.时间复杂度n*n2.逻辑分析总的来说,是将数组分为2个部分,一个是有序部分,另一个是无序部分。将无序部分的数据依次取出,插入到有序部分,最终形成排序后的数组。3.代码template <class T>void InsertArr(T* arr, int len){ for (int i = 1; i < len; ++i) { T temp = arr[i]; // 取出被比较值 int j = i - 1; for (; j >= 0

2020-09-13 18:43:17 67

原创 排序算法之冒泡排序

1.特点冒泡排序是实现起来最简单,运算复杂度为n^2的算法。2.代码template <class T>void printArr(T* arr, int len){ for (int i = 0; i < len; ++i) { cout << arr[i] << " "; } cout << endl;}template <class T>void BubbleSort(T* arr, int len

2020-09-09 00:08:40 79

原创 几种链表比较

1.链表分类链表可分为单链表,双链表,循环链表,双向循环链表和静态链表四大类。2.链表比较

2020-09-08 23:42:34 749

原创 链表之双链表

1.定义双链表是由一系列节点连接起来的数据结构,通过当前节点都可以找到前一个节点和下一个节点。2.特点使用方法,组成和内存存储方式等和单链表一样优点:可以找到某个节点的前驱和后继,可进可退。缺点:增加,删除节点复杂;因为每个节点的数据结构中多一个指针,所以多占一个指针的内存空间;3.实现template<class T> struct DNode {public: T value; DNode *prev; DNode *next;public: D

2020-09-08 23:33:16 382

原创 链表之单链表

1.定义单链表是由一系列连接在一起的节点构成,其中的每个节点都是一个数据结构。 2.使用方法单链表的节点通常是动态分配,使用和删除的,即单链表在程序运行时允许增大或缩小。3.组成非空单链表的第一个节点为单链表的头;每个节点由一个数据成员和一个指向下一个节点的指针(也被称为后继指针)组成,最后一个节点的后继指针被设置为nullptr表示链表的结束。 ...

2020-09-07 00:41:34 123

原创 数组

线性表之数组1.存储方式数组在内存中开辟一段连续的空间,按照先后顺序存储,前后相邻的两个元素之间的地址相邻。 2.数据的操作2.1读取找到需要读取的数据的位置pos,直接根据pos取值。2.2增加获取数组的大小,在数组的最后添加一个数据...

2020-09-06 18:13:53 64

原创 数据结构与算法的基本概念

书籍:c++数据结构与算法(第四版) Adam Drozdek著章节:第3章 链表3 综述:数组是程序设计语言自带的一种有效的组织数据的数据结构。但存在两个缺点,其一,程序在编译时需要知道数组的大小;其二,数据相邻,且连续存放,插入数据时,会移动部分其他的数据。相比之下,链表不存在上述两个缺点,因为链表存放的多个节点,每个节点的位置不固定,且每个节点信息里只有数据项和下个节点位置的指针...

2020-09-06 16:58:00 194

原创 超级指针的使用

一般来说,计算机程序分配内存在堆和栈上。在堆上的内存系统不会自动释放,需要人工释放,而在栈上的内存会自动释放。而,堆上的内存人工释放不是一件容易的事情,什么时刻释放和是否释放完全都是问题。本文模仿osg中osg::ref_ptr类,写了一个指针,自动释放分配的内存。// 声明一个类class Derive{public: Derive(){ std::cout <<...

2019-05-14 09:57:51 409

原创 基于g指针,d指针的数据隐藏

来自Qt源码中有关g指针和d指针的相关代码实例:// 第一段class Q_CORE_EXPORT QCoreApplication#ifndef QT_NO_QOBJECT: public QObject#endif{……Q_DECLARE_PRIVATE(QCoreApplication)public:……~QCoreApplication();……protect...

2019-05-13 21:06:42 89

原创 排序

1.快速排序1.1 思想:将原始数组划分成两个数组,第一个子数组中的元素小于或等于一个选定的关键字,这个关键字成为边界或者基准,同时,第二个子数组中的元素大于或等于边界。再继续对上述两个子数组进行排序,每个子数组选定一个新的边界。1.2 伪代码(C++)template&lt;typename T&gt;void quicksort(T data[], int first, int...

2018-10-09 01:05:52 127 1

原创 opencv2.4.9+VS2012 视频录像并分时段保存

#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "iostream"using namespace std;const int NumFrame_per_video = 135;const int Num_Total_Frame_per_Video =1000 ;const int N

2016-04-28 10:59:55 686 1

空空如也

空空如也

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

TA关注的人

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