- 0904,关联式容器针对于自定义形式的写法(
qq_51583806 彩雷王
我爱学习c++开发语言
目录001_set.cc002_set.cc坏,我就说怎么想着不对嘻嘻003_setAA_Person.cc作业01list拥有哪些特有的操作,其功能是什么,请举例说明。02问答题:STL中的emplace_back和push_back有什么区别?提示:可以从构建方式、性能等方面作答。03自己独立实现出set针对于Point的三种写法04题目:计算集合的并集:描述:给你两个集合,计算其并集,即{A
- STL相关知识点
小丑乐
知识点总结c++开发语言
STL介绍?主要包括三类:算法、容器和迭代器算法:容器中数据的处理,包括排序,复制等容器分为:序列式容器(vector、list)关联式容器(set、map)迭代器:就是在不暴露容器内部结构的情况下对容器的遍历各容器的优缺点?vector数组高效随机访问动态查找超过自身容量的需要申请大两倍的拷贝过程当插入(push_back)一个元素后,end操作返回的迭代器肯定失效。若capacity返回值没有
- C++创建不定长数组并求连续子数组最大和/排序
FantasyJXF
C++C++笔试算法排序最大子段和
2018年滴滴校招笔试编程题①用户任意输入一个整型数组,求连续子数组的最大和。在C++中使用Vector类模板生成不定长数组是非常方便的,配合push_back使用#include#include#include"algorithm"usingnamespacestd;intMaxSubSum(vectorarr,intlen){inti;intMaxSum=0;intCurSum=0;for(i
- D. Water Tree
Lanthanmum
算法数据结构
模板题#include#includeusingnamespacestd;constintN=5e5+9;intn;//树剖//1.转成线性部分vectore[N];voidadd(intu,intv){e[u].push_back(v);e[v].push_back(u);}intfa[N],dep[N],sz[N],wc[N];voiddfs1(intu,intf){//fadepszwcfa
- c++中list的简单实现
dabai__a
C++c++listwindows数据结构推荐算法c语言链表
文章目录list介绍节点类(listNode)__list__iterator(迭代器类)operator->list的成员函数empty_init()初始化节点list(list<)拷贝构造clear()清除链表~list()析构insert()插入erase()删除push_back()尾插push_front()头插pop_back()尾删pop_front()头删begin()头节点e
- C++初阶:适合新手的手撕vector(模拟实现vector)
是Nero哦
c++学习c++开发语言javalinuxc语言数据结构链表
上次讲了常用的接口:C++初阶:容器(Containers)vector常用接口详解今天就来进行模拟实现啦文章目录1.基本结构与文件规划2.空参构造函数(constructor)4.基本函数(size(),capacity(),resize(),reserve())4.增删改查(push_back,pop_back,insert,erase)5.在实现Insert和erase时迭代器失效问题6.重
- #include <deque>
Yao yn
算法stlc++
#include双端队列deque是一个支持在两端高效插入或删除元素的连续线性存储空间。它就像是vector和queue的结合。与vector相比,deque在头部增删元素仅需要O(1)的时间;与queue相比,deque像数组一样支持随机访问。[]随机访问begin/end,返回deque的头/尾迭代器front/back队头/队尾元素push_back从队尾入队push_front从队头入队p
- C/C++ - 容器deque
0xCC说逆向
编程基础-C/C++c语言c++开发语言
目录容器特性deque容器特性使用场景构造函数默认构造函数填充构造函数范围构造函数拷贝构造函数大小函数函数:size()增加函数函数:push_back()函数:push_front()函数:insert()删除函数函数:pop_back()函数:pop_front()函数:erase()函数:clear函数:resize修改函数直接索引访问修改元素使用迭代器修改元素容器特性deque在C++标准
- C/C++ - 容器list
0xCC说逆向
编程基础-C/C++c语言c++开发语言
目录容器特性list容器特性使用场景构造函数默认构造函数填充构造函数范围构造函数复制构造函数大小函数函数:size函数:empty函数:max_size增加函数函数:push_back函数:push_front函数:insert函数:emplace_back函数:emplace_front函数:emplace删除函数函数:erase函数:remove函数:remove_if函数:clear()修改
- C++ | vector二维数组的初始化与行、列数的获取
brilliantgby
C/C++c++
如果直接使用vector>v;创建二维数组,那么就会得到一个空的容器,这样再通过push_back赋值是非常麻烦的。初始化二维数组在此介绍二维数组初始化的一般操作。首先看一维数组的初始化示例:定义一个长度为n(正整数)的int类型一维数组v:vectorv(n);定义一个长度为n的int类型一维数组v,并将其所有元素赋值为1:vectorv(n,1);在此基础上,二维数组的初始化示例如下://创建
- set容器的基本概念及常用函数
*默~
c++算法
set(集合)基本概念特点:所有元素都会在插入时自动排序本质:set/multiset属于关联式容器,底层的实现是二叉树set与multiset的区别1、set不允许容器中元素有重复2、multiset可以有重复的元素set的构造与赋值操作函数原型:eg:注:set插入元素只能用insert,无push_back;(我的理解是:set是一个集合,根据数学概念可知,集合无尾部的概念,因此没有尾插法。
- C/C++ - 容器vector
0xCC说逆向
编程基础-C/C++c语言c++开发语言
目录容器特性构造函数默认构造函数填充构造函数范围构造函数拷贝构造函数内存布局大小函数size()函数capacity()函数empty()函数resize()函数增加函数push_back(constT&value)emplace_back(Args&&...args)push_back和emplace_backiteratorinsert(iteratorposition,constT&valu
- C++11 | 列表初始化 | 右值引用 | 万能引用 | 完美转发 | 可变参数模板 | lambda | 包装器function
.SacaJawea
C++学习总结c++算法数据结构
文章目录列表初始化initializer_listdecltype右值引用左右值的区别移动构造和移动赋值默认移动构造与移动赋值的生成default&delete万能引用完美转发在Insert中的使用为什么Insert需要完美转发push_back完美转发的实现可变参数模板函数递归展开逗号表达式展开emplacelambda表达式仿函数lambda的语法lambda的设计亮点lambda的底层包装器
- 99 C++内存高级话题。new/delete的进一步认识 整理
hunandede
c++算法开发语言
1.new初始化的整理。classTeacher120{public:Teacher120(){coutlength();//大小为5couta;a.push_back(2);a.push_back(5);cout::iteratorit=a.begin();for(;it*pv=newvector;pv->push_back(10);pv->push_back(20);pv->push_back
- C++(16)——vector的模拟实现
起床写代码啦!
C++c++开发语言
前面的文章中,给出了对于的模拟实现,本篇文章将给出关于的模拟实现。目录1.基本框架:2.返回值与迭代器:2.1返回值capacity与size:2.2两种迭代器iterator和const_iterator:3.扩容与push_back与pop_back:3.1扩容:3.2push_back:3.3pop_back:4.运算符重载[]:测试:5.拷贝构造函数:6.运算符重载=:7.打印函数prin
- C++关于string的详细讲解
JJP不会CPP
C++c++开发语言算法
文章目录一、string类的介绍二、string类的使用1.string的构造函数2.string的赋值函数3.string的遍历方法(1)[]+下标遍历(2)利用迭代器遍历(3)范围for遍历4.反向迭代器5.const修饰的迭代器6.size()函数和capacity()函数7.reverse和resize8.string的插入操作(1)push_back函数(2)append函数(3)+=运
- C++笔记之std::move ,std::ref,std::bind
曙光_deeplove
C++c++
本文简要学习记录。1、std::move使用场景如下:(1)c++标准库使用比如vector::push_back等这类函数时,会对参数的对象进行复制,连数据也会复制。这就造成了对象内存的额外创建,本来原意是想把参数push_back进去就可以了。(2)c++11提供了std::move函数来把左值转换为xrvalue,而且新版的push_back也支持&&参数的重载版本,这时候就可以高效率地使用
- C++11——新的类功能与可变参数模板
Tlzns
c++
系列文章目录文章目录系列文章目录一、新的类功能默认成员函数类成员变量初始化强制生成默认函数的关键字default禁止生成默认函数的关键字delete继承和多态中的final与override关键字二、可变参数模板递归函数方式展开参数包逗号表达式展开参数包STL容器中的empalce_back与push_back的区别一、新的类功能默认成员函数原来C++类中,有6个默认成员函数:构造函数析构函数拷贝
- 【万字总结】C++——list的基本使用和模拟实现(建议收藏)
袁百万
C++c++链表数据结构list
目录一、list基本介绍二、list的使用1、list的初始化方式2、list的增删查改push_front和pop_front与push_back和pop_backinserterase3、list迭代器的使用正向迭代器反向迭代器4、list获取头尾元素5、list容量操作6、list的其他操作sortspliceremoveuniquemergereverseassignswap7、结点的构造
- 【C++】STL中vector容器使用总结
code-016
C++c++STLvector
文章目录一、vector(1)区分size()和capacity()(2)迭代器失效(3)区分const_iterator和constiterator(4)区分reserve()和resize()(5)push_back和emplace(6)关于原位构造(定位new+完美转发)一、vector(1)区分size()和capacity()size():返回容纳的元素个数capacity():返回当前
- vector形式的链式前向星
:Alarm clock
算法数据结构图论
vector>q(1000);intn,m;//n个顶点,m条边intmain(){cin>>n>>m;for(inti=1;i>a>>b;q[a].push_back(b);}return0;}读入一个有n个节点,m条边的有向图
- append,push_back,pop_back(),to_string函数的用法
陈琦煜
算法c++
append函数是用来在字符串后面增加字符串的,在c++中我感觉有一点鸡肋,因为字符串可以直接用“+”这个符号去加,效果是一样的stringstr1,str2;str1+=str2;str1.append(str2);//这两者效果一致push_back这个函数我通常用来给动态数组增加元素,这个函数将你放到括号里的元素放到动态数组的最后一位,这很常用vectornums;nums.push_bac
- 【C++】STL之vector容器(定义及基本函数应用)
Jacky_Feng
C++c++开发语言
目录一、什么是vector?二、容器特性1.顺序序列2.动态数组3.能够感知内存分配器的(Allocator-aware)三、基本函数实现1.构造函数2.修改函数①assign②push_back③pop_back④insert⑤erase⑥swap⑦clear3.元素访问①operator[]②at③data④front⑤back4.迭代器①begin②end③rbegin④rend5.容量①s
- 力扣 54. 螺旋矩阵(螺旋遍历)
蔡徐坤学C++
算法矩阵leetcodec++
力扣54.螺旋矩阵给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。push_back的运用:(加在最后一个元素的后面位置)#include#includeusingnamespacestd;intmain(){vectorret;for(inti=0;ispiralOrder(vector>&matrix){vectorret;//螺旋遍历的方法intup=0;//
- 【C++】手撕string思路梳理
努力学c的楼下小王
java算法数据结构
目录基本思路代码实现1.构建框架:2.构建函数重载3.迭代器:4.遍历string5.resetve开空间,insert任意位置插入push_back,append,+=(按顺序依次实现)6.erase删除,clear清除,resize缩容7.流插入,流提取全部代码本文是对模拟string步骤进行梳理若要详细讲解请跳转至:【C++】string模拟-CSDN博客string讲解:【C++】Stri
- 【C++】list讲解及模拟
努力学c的楼下小王
c++listwindows
目录list的基本介绍list模拟实现一.创建节点二.迭代器1.模版参数2.迭代器的实现:a.!=b.==c.++--d.*指针e.&引用整体iterator(与const复用):三.功能实现1.模版参数2.具体功能实现:2.1构造函数2.2begin()&&end()print_list打印2.3插入insert任意位置插入push_back尾插&&push_front前插2.4删除erase任
- vector迭代器失效的问题及解决
李笑叶
MyC/C++c++
对于迭代器,其实本质上就是一个指针,那么当这个指针指向的位置已经不是我们想要的位置时,我们认为这个迭代器失效了。一.迭代器失效的场景关于迭代器失效,主要有两种场景:1.底层空间发生改变底层空间发生改变即当我们获取了迭代器之后,又对底层的空间进行了操作使其发生了改变,如resize、reserve、insert、push_back等。这样一旦发生了扩容,导致原空间被释放,那么这个迭代器显然失效了。#
- C++入门之vector的模拟实现
cls-evd
C++c++算法开发语言vector模拟实现
目录一、vector的大致框架二、vector的模拟实现构造函数默认构造函数使用迭代器初始化的构造函数为什么这里的迭代器区间取名叫InputIterator呢?拷贝构造函数传统写法现代写法operator=的实现现代写法size()的实现capacity()的实现operator[]的实现push_back()的实现方法一:提前将size算出来。再去更新_start方法二:提前将_finish算出
- STL标准库(四) 容器适配器
ぃ扶摇ぅ
c++开发语言
适配器:将功能类似但接口不同的类转换为另一个统一的接口,类似转换器常见适配器分为以下三种:stack栈包含头文件queue队列priority_queue优先队列栈如下是一些栈的应用方法:obj.push();push_back()obj.pop();pop_back()obj.top()back();如上应用方法,同样支持的迭代器:vectorlistdeque以上三种迭代器具有相同的功能,可以
- C++中push_back()函数详细用法,一起看看吧
松叶子吖
C++知识新手帖c++开发语言蓝桥杯
push_back()函数的用法函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素push_back()在Vector最后添加一个元素(参数为要插入的值)//在vec尾部添加10vectorvec;vec.push_back(10);//在容器中添加10intnum=10;vectorvec;vec.push_back(num);或者在string中最后插入一个字符;s
- 关于旗正规则引擎规则中的上传和下载问题
何必如此
文件下载压缩jsp文件上传
文件的上传下载都是数据流的输入输出,大致流程都是一样的。
一、文件打包下载
1.文件写入压缩包
string mainPath="D:\upload\"; 下载路径
string tmpfileName=jar.zip; &n
- 【Spark九十九】Spark Streaming的batch interval时间内的数据流转源码分析
bit1129
Stream
以如下代码为例(SocketInputDStream):
Spark Streaming从Socket读取数据的代码是在SocketReceiver的receive方法中,撇开异常情况不谈(Receiver有重连机制,restart方法,默认情况下在Receiver挂了之后,间隔两秒钟重新建立Socket连接),读取到的数据通过调用store(textRead)方法进行存储。数据
- spark master web ui 端口8080被占用解决方法
daizj
8080端口占用sparkmaster web ui
spark master web ui 默认端口为8080,当系统有其它程序也在使用该接口时,启动master时也不会报错,spark自己会改用其它端口,自动端口号加1,但为了可以控制到指定的端口,我们可以自行设置,修改方法:
1、cd SPARK_HOME/sbin
2、vi start-master.sh
3、定位到下面部分
- oracle_执行计划_谓词信息和数据获取
周凡杨
oracle执行计划
oracle_执行计划_谓词信息和数据获取(上)
一:简要说明
在查看执行计划的信息中,经常会看到两个谓词filter和access,它们的区别是什么,理解了这两个词对我们解读Oracle的执行计划信息会有所帮助。
简单说,执行计划如果显示是access,就表示这个谓词条件的值将会影响数据的访问路径(表还是索引),而filter表示谓词条件的值并不会影响数据访问路径,只起到
- spring中datasource配置
g21121
dataSource
datasource配置有很多种,我介绍的一种是采用c3p0的,它的百科地址是:
http://baike.baidu.com/view/920062.htm
<!-- spring加载资源文件 -->
<bean name="propertiesConfig"
class="org.springframework.b
- web报表工具FineReport使用中遇到的常见报错及解决办法(三)
老A不折腾
finereportFAQ报表软件
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、repeated column width is largerthan paper width:
这个看这段话应该是很好理解的。比如做的模板页面宽度只能放
- mysql 用户管理
墙头上一根草
linuxmysqluser
1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'jeecn’,password(‘jeecn’));//刷新系统权限表mysql>flush privileges;这样就创建了一个名为:
- 关于使用Spring导致c3p0数据库死锁问题
aijuans
springSpring 入门Spring 实例Spring3Spring 教程
这个问题我实在是为整个 springsource 的员工蒙羞
如果大家使用 spring 控制事务,使用 Open Session In View 模式,
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.
- 百度词库联想
annan211
百度
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RunJS</title&g
- int数据与byte之间的相互转换实现代码
百合不是茶
位移int转bytebyte转int基本数据类型的实现
在BMP文件和文件压缩时需要用到的int与byte转换,现将理解的贴出来;
主要是要理解;位移等概念 http://baihe747.iteye.com/blog/2078029
int转byte;
byte转int;
/**
* 字节转成int,int转成字节
* @author Administrator
*
- 简单模拟实现数据库连接池
bijian1013
javathreadjava多线程简单模拟实现数据库连接池
简单模拟实现数据库连接池
实例1:
package com.bijian.thread;
public class DB {
//private static final int MAX_COUNT = 10;
private static final DB instance = new DB();
private int count = 0;
private i
- 一种基于Weblogic容器的鉴权设计
bijian1013
javaweblogic
服务器对请求的鉴权可以在请求头中加Authorization之类的key,将用户名、密码保存到此key对应的value中,当然对于用户名、密码这种高机密的信息,应该对其进行加砂加密等,最简单的方法如下:
String vuser_id = "weblogic";
String vuse
- 【RPC框架Hessian二】Hessian 对象序列化和反序列化
bit1129
hessian
任何一个对象从一个JVM传输到另一个JVM,都要经过序列化为二进制数据(或者字符串等其他格式,比如JSON),然后在反序列化为Java对象,这最后都是通过二进制的数据在不同的JVM之间传输(一般是通过Socket和二进制的数据传输),本文定义一个比较符合工作中。
1. 定义三个POJO
Person类
package com.tom.hes
- 【Hadoop十四】Hadoop提供的脚本的功能
bit1129
hadoop
1. hadoop-daemon.sh
1.1 启动HDFS
./hadoop-daemon.sh start namenode
./hadoop-daemon.sh start datanode
通过这种逐步启动的方式,比start-all.sh方式少了一个SecondaryNameNode进程,这不影响Hadoop的使用,其实在 Hadoop2.0中,SecondaryNa
- 中国互联网走在“灰度”上
ronin47
管理 灰度
中国互联网走在“灰度”上(转)
文/孕峰
第一次听说灰度这个词,是任正非说新型管理者所需要的素质。第二次听说是来自马化腾。似乎其他人包括马云也用不同的语言说过类似的意思。
灰度这个词所包含的意义和视野是广远的。要理解这个词,可能同样要用“灰度”的心态。灰度的反面,是规规矩矩,清清楚楚,泾渭分明,严谨条理,是决不妥协,不转弯,认死理。黑白分明不是灰度,像彩虹那样
- java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
bylijinnan
java
public class PrintMatrixClockwisely {
/**
* Q51.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如:如果输入如下矩阵:
1 2 3 4
5 6 7 8
9
- mongoDB 用户管理
开窍的石头
mongoDB用户管理
1:添加用户
第一次设置用户需要进入admin数据库下设置超级用户(use admin)
db.addUsr({user:'useName',pwd:'111111',roles:[readWrite,dbAdmin]});
第一个参数用户的名字
第二个参数
- [游戏与生活]玩暗黑破坏神3的一些问题
comsci
生活
暗黑破坏神3是有史以来最让人激动的游戏。。。。但是有几个问题需要我们注意
玩这个游戏的时间,每天不要超过一个小时,且每次玩游戏最好在白天
结束游戏之后,最好在太阳下面来晒一下身上的暗黑气息,让自己恢复人的生气
&nb
- java 二维数组如何存入数据库
cuiyadll
java
using System;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace WindowsFormsApplication1
{
- 本地事务和全局事务Local Transaction and Global Transaction(JTA)
darrenzhu
javaspringlocalglobaltransaction
Configuring Spring and JTA without full Java EE
http://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/
Spring doc -Transaction Management
http://docs.spring.io/spri
- Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
dcj3sjt126com
linuxalias
用途说明
设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问 题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常 用的长命令行变短,强制执行命令时询问等。
常用参数
格式:alias
格式:ali
- yii2 restful web服务[格式响应]
dcj3sjt126com
PHPyii2
响应格式
当处理一个 RESTful API 请求时, 一个应用程序通常需要如下步骤 来处理响应格式:
确定可能影响响应格式的各种因素, 例如媒介类型, 语言, 版本, 等等。 这个过程也被称为 content negotiation。
资源对象转换为数组, 如在 Resources 部分中所描述的。 通过 [[yii\rest\Serializer]]
- MongoDB索引调优(2)——[十]
eksliang
mongodbMongoDB索引优化
转载请出自出处:http://eksliang.iteye.com/blog/2178555 一、概述
上一篇文档中也说明了,MongoDB的索引几乎与关系型数据库的索引一模一样,优化关系型数据库的技巧通用适合MongoDB,所有这里只讲MongoDB需要注意的地方 二、索引内嵌文档
可以在嵌套文档的键上建立索引,方式与正常
- 当滑动到顶部和底部时,实现Item的分离效果的ListView
gundumw100
android
拉动ListView,Item之间的间距会变大,释放后恢复原样;
package cn.tangdada.tangbang.widget;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import andr
- 程序员用HTML5制作的爱心树表白动画
ini
JavaScriptjqueryWebhtml5css
体验效果:http://keleyi.com/keleyi/phtml/html5/31.htmHTML代码如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="UTF-8" >
<ti
- 预装windows 8 系统GPT模式的ThinkPad T440改装64位 windows 7旗舰版
kakajw
ThinkPad预装改装windows 7windows 8
该教程具有普遍参考性,特别适用于联想的机器,其他品牌机器的处理过程也大同小异。
该教程是个人多次尝试和总结的结果,实用性强,推荐给需要的人!
缘由
小弟最近入手笔记本ThinkPad T440,但是特别不能习惯笔记本出厂预装的Windows 8系统,而且厂商自作聪明地预装了一堆没用的应用软件,消耗不少的系统资源(本本的内存为4G,系统启动完成时,物理内存占用比
- Nginx学习笔记
mcj8089
nginx
一、安装nginx 1、在nginx官方网站下载一个包,下载地址是:
http://nginx.org/download/nginx-1.4.2.tar.gz
2、WinSCP(ftp上传工
- mongodb 聚合查询每天论坛链接点击次数
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 18 */
{
"_id" : ObjectId("5596414cbe4d73a327e50274"),
"msgType" : "text",
"sendTime" : ISODate("2015-07-03T08:01:16.000Z"
- java术语(PO/POJO/VO/BO/DAO/DTO)
Luob.
DAOPOJODTOpoVO BO
PO(persistant object) 持久对象
在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.
VO(value object) 值对象
通
- 算法复杂度
Wuaner
Algorithm
Time Complexity & Big-O:
http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o
http://bigocheatsheet.com/
http://www.sitepoint.com/time-complexity-algorithms/