自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(14)
  • 收藏
  • 关注

原创 单列模式详讲

一、设计模式简介(1)什么是设计模式: 设计模式是一套被反复使用,多数人知晓的、经过分类编目的、代码设计的总结,使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。 (2)设计模式的分类:按照目的可分为三类:创建型模式,结构型模式,行为型模式;按照范围,即模式主要处理类之间的关系还是对象之间的关系分为类模式、对象模式(3)设计模式主要被广泛应用于面向对象编程;二、设计模

2017-08-30 21:51:58 850

原创 线索二叉树

一、简介二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。为了保存这种在遍历中需要的信息,我们利用二叉树中指向左右子树的空指针来存放节点的前驱和后继信息。那么这样的话就会将一个二叉树中所有的结点的指针域都利用起来;如果一个结点的左右指针有指向的左右孩子,则不

2017-08-28 21:35:52 498

原创 智能指针详解

一、RALL机制RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 他的思想是资源分配即初始化,定义一个类来封装资源的的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确释放和初始化RAII要求,资源的有效期与持有资源的对象的⽣命期严

2017-08-20 05:48:36 1055

原创 TopK问题--100W个数种找出其中最大的前K个数;

一、100W个数种找出其中最大的前K个数—-建小堆 找最小–建大堆 ; 二、//100W个数种找出其中最大的前K个数;//知识回顾://bit---比特//Byte----字节//*1T=1024GB//1GB=1024MB//1MB=1024KB//1KB=1024B//1B=8

2017-08-15 02:24:36 1292

原创 堆得应用【一】--【优先级队列priority_queue】

先看一下STL中优先级队列实现的功能: 一、介绍优先级队列优先级队列就是每次top可以取到队列的最值;每次pop都能删除队列中的最值; 那么我们应该如何实现呢?优先级队列是我们常见的数据结构队列的一种变形,对于队列,大家都很熟悉;就是先进如队列的元素,先出队列,那么一般的队列是可以尾插,可以头删,可以取到头部的元素,,可以到尾部取元素;我们要将一般队列实现优先级队列有三种方法: 方法一:就是我

2017-08-14 05:57:59 368

原创 Heap【堆】

1.堆得介绍堆得数据结构是一种数组对象,堆可以被看做一颗完全二叉树(借助二叉树的思想建堆以及插入和删除比较形象直观)2.堆得分类:①最大堆:每个父节点>它的孩子结点 ②最小堆:每个父节点<它的孩子结点3.堆得应用①优先级队列 ①堆排序 4.堆得底层是一个数组,学了STL库之后,可以将底层写层vector,可以动态增容5.堆得创建将一个数组中的元素进行向下调整,调成大堆或者小堆6.时间复杂度:建

2017-08-14 04:06:23 414

原创 【哈希表】+【位图】+【布隆过滤器】

总结

2017-08-12 02:44:37 389

原创 布隆过滤器【BloomFilter】

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。布隆过滤器一般是用来判断字符串是否在一个集合中; 布隆过滤器的原理是开辟一个位数组用每一位来标记一个数是否存在;这个数就是字符串经过哈希函数映射来的ha

2017-08-12 01:49:09 448 1

原创 【位图】--利用位图储存大数据,节省空间,快速查找

#include<iostream>using namespace std;#include<vector>class BitMap{public: BitMap(size_t MaxNum)//构造函数 { _arr.resize((MaxNum>>5)+1); } void Set(size_t num)//位图中插入元素 {

2017-08-11 16:08:00 752

原创 HashTable【哈希表/散列表】

前序:一、关于查找,其实说白了,查找的本质就是已知对象查找位置;那么在已知了对象以后都有什么办法去快速查找对象的位置;(1)【无序查找】在前面的学习中,我们看到如果这些对象是无序的装在一个容器中(数组,顺序表,链表,普通二叉树)那么就拿着这个对象去容器中一个一个的找,如果找到了,就查到了该对象的位置,如果没有找到说明对象没在这个容器中;这种情况下的查找时间复杂度为O(N)(2)【全序查找】如果我们将

2017-08-08 01:40:06 673

转载 vector 中resize和reserve的区别

vector 中resize和reserve的区别#include<iostream>using namespace std;#include<vector>int main(){ vector<int> a; a.reserve(10); //分配10int大小的容量,没有初始化,不能访问 * * * * * * * * * * //初始化5个空间大小

2017-08-07 21:09:29 318

原创 STL学习&&数据结构

1.STL学习: http://study.163.com/course/courseLearn.htm?courseId=1003205055#/learn/video?lessonId=1003642022&courseId=10032050552.数据结构和算法 数据结构和算法3.IT经典面试题剖析 C C++部分:IT经典面试题剖析 C C++部分4.面向对象程序设计-C++ 面向对象

2017-08-07 13:54:14 417

原创 已知集合A和B的元素分别用不含头结点的单链表存储, 求解集合A与B的差集,并将结果保存在集合A的单链表中

1.【附加题】–已知集合A和B的元素分别用不含头结点的单链表存储, 函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。 例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。 链表结点的结构类型定义如下: struct node { int elem; n

2017-08-06 23:50:46 425

原创 统计公司员工喜欢吃的水果,并打印出最喜欢吃的前K中水果【map关联式容器,k/V结构】

5.【附加题】– 本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。 由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果, 并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数, 并且求出大家最喜欢吃的前k种水果。 void GetFavoriteFruit(const vector

2017-08-06 19:58:07 311

空空如也

空空如也

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

TA关注的人

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