
数据结构与算法
文章平均质量分 56
mm_hh
这个作者很懒,什么都没留下…
展开
-
单例模式之 --饿汉模式与懒汉模式
一、饿汉模式与懒汉模式http://mp.weixin.qq.com/s?__biz=MjM5MjI2MzkyNw==&mid=2652124208&idx=1&sn=3cd17cb1b3b6ad03d933b7625c8a7e8d&chksm=bd486fa88a3fe6be014711cd9cf28f1868f5db17047398df24b83801e9753c33af8f352f7980&m原创 2017-08-23 17:43:07 · 490 阅读 · 0 评论 -
位图的简单实现(bitMap)
一、位图的基本概念位图法(bitmap) 作用: 判断某个数据存在不存在 适用范围:大规模数据,数据状态又不多 什么是位图: http://baike.sogou.com/v72576997.htm?fromTitle=位图法所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。 例如,原创 2017-08-23 10:37:58 · 1714 阅读 · 0 评论 -
布隆过滤器
11、布隆过滤器–>(时间复杂度为: O(1) )存在误判(不同的字符串可能转化为相同的整形)–>可以应用于任何数据类型(位图的扩展)实现布隆过滤器需要位图和哈希函数 布隆过滤器:1、数据存在(不一定准确)-->可能因为冲突导致(可通过把地址存入磁盘解决)2、数据不存在(一定准确)布隆过滤器的目的是为了节约空间,所以确定站位个数也不能过多,但当位数少时冲突率就会增高(悖论)布隆过滤器可以设原创 2017-08-24 20:23:55 · 641 阅读 · 0 评论 -
由前序遍历和中序遍历重构二叉树
由前序遍历和中序遍历重建二叉树前序序列(根-左-右):1 2 3 4 5 6中序序列(左-根-右):3 2 4 1 6 51、由前序遍历可知根节点为第一个元素1,在中序遍历序列中找到1对应位置,则1的左边就是左子树3 2 4,右边就是右子树6 5; 2、在找到前序遍历序列中从第二个位置开始往后找相同数目的节点为左子树2 3 4,剩余的就是右子树序列6 5; 3、根据前序遍历规则可知,左子树序原创 2017-07-31 23:42:20 · 405 阅读 · 0 评论 -
atoi 函数的实现
atoi 函数的实现atoi()函数实现的功能是:将字符串转换为相应的整形;atoi代码块的实现#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;//atoi()的实现(将字符串转为整形)int my_atoi(char * str){ int n=0;//保存整形 char f原创 2017-05-03 18:51:51 · 1740 阅读 · 0 评论 -
itoa函数的实现
itoa的实现(我的编译器是VS2013) itoa()函数表示:把一个整形转换为相应的字符串;eg: 整形1234 转换为“1234”,整形-123转换为“-123”。itoa代码实现#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;//itoa------(将整形转换为字符串)//字符串反转c原创 2017-05-03 16:27:02 · 2254 阅读 · 0 评论 -
一个数组实现两个栈
图片讲解 代码实现#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;#include <assert.h>//一个数组实现两个栈(OneArrayToBothStack)//自定义两个标记:i(i=1代表栈1,i=2代表栈2)const int SizeStack = 20;//数组大小tem原创 2017-04-09 23:01:19 · 393 阅读 · 0 评论 -
vector容器中resize与reserve的区别
Vector中的resize()与reserve()的区别首先申明resize()和reserve()这两个成员函数都是Vector的公有成员函数(public member function)一、先了解vector容器的构成:1.首先明白vector是一种顺序容器(申请的内部空间是连续的)2.它的底层是由类模板实现的二、这两个成员函数的意原创 2017-03-19 21:08:43 · 18159 阅读 · 1 评论 -
排序算法精讲(全)
排序算法(sort)我用的是VS2013编译器一、常见的排序分类(见以下两幅图):二、各排序算法的时间复杂度三、各个排序算法代码实现所需的头文件 1.插入排序--直接插入排序2.插入排序--希尔排序3.选择排序--直接选择排序4.选择排序--堆排序(重点)原创 2017-03-02 16:13:22 · 408 阅读 · 0 评论 -
stack的模拟实现
Stack的模拟实现栈的特性:后进先出接口一般有:push(); pop();size();empty();top();#pragma once#include <assert.h>//const size_t N = 10;//#define NUM 20template<class T>class Stack{public: Stack()原创 2017-09-15 16:45:28 · 564 阅读 · 0 评论