排序算法 常用排序算法的特点 常用排序法的时间复杂度和空间复杂度 插入排序(直接插入,希尔排序) 选择排序(‘简单选择排序,堆排序’) 交换排序(冒泡排序,快速排序) 归并排序 基数排序 直接插入排序 首先以第一个数字开始,每次选择,已排序数据中的后面一个数据插入到以排序数据中 希尔排序 跳跃性的选 ...
分类:
编程语言 时间:
2016-09-17 20:33:32
阅读次数:
160
莫队算法 莫队算法可用于解决一类可离线且在得到区间[l,r][l,r]的答案后,能在O(1)O(1)或O(log2n)O(log2?n)得到区间[l,r+1][l,r+1]或[l?1,r][l?1,r]的答案的问题 先看这样一个问题: 给出n个数字,m次询问,每次询问在区间[li,ri][li,ri ...
分类:
编程语言 时间:
2016-09-07 22:52:41
阅读次数:
262
1.基础 【除法定理】:对于任何整数a和正整数n,存在唯一整数q和r,满足0<=r<n且a=qn+r WARN:C++中貌似不完全遵守这个东西,n认为是|n|,并且a为负时r可以为负 【】 2.最大公约数 几条性质:gcd(a,b)=gcd(|a|,|b|) gcd(a,0)=|a| gcd(a,k ...
分类:
编程语言 时间:
2016-08-13 01:17:27
阅读次数:
262
算法 定义:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作 特性:五个基本特性,即输入、输出、有穷性、确定性、可行性 算法设计的要求 正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案 ...
分类:
编程语言 时间:
2016-08-08 00:39:36
阅读次数:
169
书瓖果 定义:首先,找到数组中最小的那个元素,其次,将它和数组中的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次 结论:对于长度为N的数组,选择排序需要大约N2/2次比较和N次交换。 《算法基础》给出的伪码: 《算法》实现: ...
分类:
编程语言 时间:
2016-07-25 00:14:53
阅读次数:
180
《大纲》
STL
容器
map容器的4中初始化遍历
map容器元素的删除观测map.insert返回值,方法123,已存在就报错,初始化方法4会覆盖
map的查找,异常处理
map容器的range返回两个迭代器
multimap案例,按照部门_增删员工信息
容器共性机制
把对象放到容器中,会自..
分类:
编程语言 时间:
2016-07-20 15:09:14
阅读次数:
330
从学习数据结构开始就接触各种算法基础,但是自从应付完考试之后就再也没有练习过,当在开发的时候也是什么时候使用什么时候去查一下,现在在学习JavaScript,趁这个时间再把各种基础算法整理一遍,分别以JS和PHP语法的方式编写代码。 1.冒泡排序 原理:临近的数字两两进行比较,按照从小到大或者从大到 ...
分类:
编程语言 时间:
2016-07-11 21:24:23
阅读次数:
271
2.1插入排序 扑克牌这个栗子不错。以后得多用扑克牌来形象化思考排序问题。 根据伪代码用java实现插入排序 循环不变式。。。。。。。 2.2分析算法 RAM模型,输入规模,运行时间(假定第i行的每次执行需要时间Ci), 最坏情况与平均情况分析,增长量级 2.3设计算法 分治法 归并排序 Merge ...
分类:
编程语言 时间:
2016-07-10 13:59:18
阅读次数:
192
简介莫涛大神创造出的离线询问算法的带修改版。
算法基础:需要掌握莫队算法,会打暴搜(暴力)。
一个叫莫的双端队列。
只支持单点修改操作方法普通的不带修改的莫队算法要把每个询问带上两个关键字排序,现在待修改的莫队算法要带上三个关键字排序。初始操作fo(i,1,m) {
scanf("%s%d%d",s,&k,&l);
if (s[0]=='Q')a[++tot]....
分类:
编程语言 时间:
2016-07-10 09:54:47
阅读次数:
196