[SCOI2008]奖励关 Time Limit: 10 Sec Memory Limit: 128 MB Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决 ...
分类:
其他好文 时间:
2018-03-21 11:37:49
阅读次数:
162
《大话数据结构》学习笔记二,对应书中第二章《算法》的内容。主要包括:算法的定义、算法的特性、算法设计的要求、算法的度量方法、函数渐近增长的定义、推导大O阶的步骤、常见时间复杂度所耗时间的大小、最坏情况和平均情况、空间复杂度。 ...
分类:
其他好文 时间:
2018-03-12 01:09:23
阅读次数:
199
摘要: 本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较排 ...
分类:
编程语言 时间:
2018-02-23 16:00:03
阅读次数:
187
一、渐进记法三个重要的记号 Ο、Ω、Θ,Ο记法表示渐进上界,Ω记法表示渐进下界,Θ记法同时提供了函数的上下界几种常见的渐进运行时间实例三种重要情况最好的情况,最坏的情况,平均情况最坏的情况通常是最有用的情况,可以对算法效率做出最佳保证实证式算法评估Tip1:If possible, don’t wo... ...
分类:
编程语言 时间:
2018-02-11 16:15:21
阅读次数:
161
一开始在最上面的循环开始,i的范围过大, 可以看下面数组的下标,在进行操作的时候,如果出现 i+1的时候,就要注意i的循环上限是否需要减一,当循环中出现i-1的时候,循环i 的下限是否需要加一!!! 直接插入排序 的时间复杂度:最好的情况为o(n) 最坏的情况为o(nxn) 平均情况为 o(nxn) ...
分类:
编程语言 时间:
2018-01-27 13:52:58
阅读次数:
167
图片出自狄泰软件学院工程里面一般采用时间复杂度在O(n^3)之前的算法。算法的最好与最坏情况:一般推断算法的最坏情况,当程序在最坏情况都能满足要求是,说明在最好和平均情况都能满足要求。算法的空间复杂度(SpaceComplexity)定义:S(n)=S(f(n))n为算法的问题规模f(n)为空间使用函数,与n有关推导时间复杂度的方法同样适用于空间复杂度如当算法所需要的空间复杂度是常数时,空间复杂度
分类:
其他好文 时间:
2018-01-13 00:21:49
阅读次数:
440
有序字典是以有序集为基础的抽象数据类型。可用数组实现(二分法查询前驱后驱快速,但插入删除较麻烦),链表实现(查询元素麻烦)。 因此用二叉搜索树实现字典。二叉搜索树就是一棵二叉树,保证左子树的元素小于根节点,右子树的元素大于根节点。最坏情况下查找插入删除操作的复杂度都需要o(n),平均情况下的时间复杂 ...
分类:
其他好文 时间:
2017-12-28 16:09:34
阅读次数:
160
一、冒泡排序 原理为两两交换,大数据就慢慢往一个方向移动,就像水里的泡泡一样,该排序很简单,无需多言。 上代码: 冒泡排序总结: 时间复杂度:平均情况O(n2),最好情况O(n),最坏情况O(n2) 空间度杂度:O(1) 稳定性:稳定 而我要说的另一个交换类的排序,就复杂得多了 快速排序。 二、快速 ...
分类:
编程语言 时间:
2017-10-22 00:26:43
阅读次数:
214
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题 ...
分类:
编程语言 时间:
2017-10-11 15:27:46
阅读次数:
214
一、基本概念 关键字的全域为集合U,待散列的关键字集合为K,散列表的存储需求为O(K),同事针对平均情况的查找时间为O(1)。关键字k被存放在槽h(k)中,即利用散列函数h,由关键字k计算出槽的位置,h将U映射到散列表T[0...m1]的槽位上。 冲突:两个关键字可能映射到同一个槽中。 解决冲突:链 ...
分类:
其他好文 时间:
2017-09-16 15:01:16
阅读次数:
229