目录: 1、为什么要用?(它的好处或优点) 2、原理是什么?(效果) 3、怎样去实现?(想马上看代码的同学点这里) 为什么要用? 1、时间复杂度: 平均情况 O(n2)、最坏情况O(n2),最好情况O(n) 2、空间复杂度: O(1) 3、稳定性: 稳定 4、复杂度:简单 容易实现 适用场景: 有序 ...
分类:
编程语言 时间:
2017-03-25 20:14:07
阅读次数:
206
目录: 1、为什么要用?(它的好处或优点) 2、原理是什么?(效果) 3、怎样去实现?(想马上看代码的同学点这里) 为什么要用? 1、时间复杂度: 平均情况 O(n2)、最坏情况O(n2),最好情况O(n) 2、空间复杂度: O(1) —— 可理解为一个变量 3、稳定性: 稳定 4、复杂度:简单 容 ...
分类:
编程语言 时间:
2017-03-23 22:14:07
阅读次数:
188
在程序中,人们经常关心的是程序运行时间。比如我们较早接触到的起泡排序,对于长度为n的序列A[0,n-1],我们比较A[i]和A[i+1]的大小,当A[i]<=A[i+1]时我们称这两个元素是顺序的,否则我们称这两个元素是逆序的,当两个元素逆序时,我们交换两个元素的位置,我们依次扫描序列A,当到达序列 ...
分类:
其他好文 时间:
2017-03-06 01:05:06
阅读次数:
187
快速排序小结 大纲: 1.快排的原理 2.最坏情况 3.优化快排的方法 4.一般写法与更好的写法 1.快排的原理(本文重点) 伪代码: Void sqsort(int left,int right){ 1.随便找个数aN 2.把要排序的数组分成以下 区间 <aN|<aN|<aN|…|==aN|==a ...
分类:
编程语言 时间:
2017-03-05 00:21:46
阅读次数:
194
http://uoj.ac/problem/228 (题目链接) 题意 给出一个序列,维护区间加法,区间开根,区间求和 Solution 线段树。考虑区间开根怎么做。当区间的最大值与最小值相等时,我们直接对整个区间开根。最坏情况下,一次开根的复杂度最坏是${O(nlogn)}$的,然而每次开根可以迅 ...
分类:
其他好文 时间:
2017-01-29 10:57:50
阅读次数:
260
在写这篇博客之前,我最想做的一件事就是:ORZ莫队%%%%%%%%。 说明:ceil(x)表示x向上取整,sqrt(x)表示对x开算数平方根。 一、莫队算法简介 莫队算法是一种暴力算法,真的很暴力,但速度很快,属于速度快的暴力。它的基本思想就是分块。关于分块的介绍建议参考hzwer的博客,然后%%% ...
分类:
编程语言 时间:
2017-01-28 07:14:49
阅读次数:
374
Description 某个公司有n个人, 上下级关系构成了一个有根树。其中有个人是叛徒(这个人不知道是谁)。对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒。你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超 ...
分类:
其他好文 时间:
2017-01-22 07:59:48
阅读次数:
238
算法思路 排序算法 时间复杂度 最好情况 最坏情况 空间复杂度 稳定性 插入排序 直接插入 O(n2) O(n) O(n2) O(1) 是 希尔排序 O(n(logn)2) O(1) 否 交换排序 冒泡排序 O(n2) O(n) O(n2) O(1) 是 快速排序 O(nlogn) O(nlogn) ...
分类:
编程语言 时间:
2017-01-22 07:45:55
阅读次数:
185
题意:给定n个物品,每个物品对于A和B来说具有不同的价值,记为ai,bi,两人交替取,A先手,A总是贪心地取当前剩下的物品中,对于他价值最高的,如果有多个,则任取一个。问B在最坏情况下,能取到的物品的对他的价值和最大是多少。 先把物品以ai为第一关键字,bi为第二关键字排序。这样A每次必定从最左端取 ...
分类:
其他好文 时间:
2017-01-15 22:55:50
阅读次数:
269
http://codeforces.com/problemset/problem/747/D 题意:有n天,k次使用冬天轮胎的机会,无限次使用夏天轮胎的机会,如果t<=0必须使用冬轮,其他随意。问最少的换胎次数。 思路:先数冬天的天数tol,如果天数>k的话,那么就不可能度过。否则,最坏情况下,每到 ...