第一章 算法引论 算法分析的目的:估算该算法所需的内存空间和运行时间。 分析算法复杂度的目的:用以比较同一问题的不同算法;时间和空间的增长率作为衡量的标准。 算法是对解决这个问题的方法和步骤的描述。 算法的基本特征:有穷性、确定性、可行性、0到多个输入、1到多个输出。 一个好的算法应具有正确性、可读 ...
分类:
编程语言 时间:
2019-01-06 11:54:33
阅读次数:
276
1.描述:实质是一种受到限制的表,即插入删除只能在表的末端,能够实现LIFO(后进先出) 2.栈的实现 链表实现(链栈) 数组实现(顺序栈) 3.链栈 创建一个空栈 测试栈是否为空 从栈顶弹出元素 返回栈顶元素(不弹出,不改变栈顶指针),遇到空栈将返回异常 清空栈(同时销毁物理内存) 压栈 遍历栈 ...
分类:
编程语言 时间:
2018-12-31 18:59:04
阅读次数:
240
题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1335 算法分析:可以用dfs先搜出黑格子,然后再通过递归判断周围的格子是否满足四联通要求,然后就好了。 代码如下 记得把搜索完的黑格子初始化,进行下一步搜索。。 ...
分类:
其他好文 时间:
2018-12-30 02:43:45
阅读次数:
176
1.描述:不连续存储的表,可以把链表看成一个数组,数组元素是一个个结构体,这些结构体之间通过指针连接 2.优点: 利用不连续的存储空间,提高内存使用效率 避免删除和插入的线性开销 对比数组,大小不固定,可以扩展 3. 缺点:查找效率低 4. 定义一个单向链表 5.检测链表是否为空 对于一个单向链表, ...
分类:
编程语言 时间:
2018-12-29 19:45:44
阅读次数:
184
冒泡排序算法: - 算法分析: 时间复杂度: 经过几轮修改,数组正序时,最优复杂度可以达到O(n);逆序时,最差复杂度O(n2)。 稳定性: 算法中,每次只有前一个元素大于后一个元素,才会进行交换。所以数值相同的两个元素,不会发生位置互换,所以可以保持之前前后顺序。故,冒泡排序是稳定的排序。 奇偶排 ...
分类:
其他好文 时间:
2018-12-29 11:55:52
阅读次数:
193
在算法分析中,经常会遇到以下几种渐进符号 下面对渐进符号进行详解: 大写O符号f(n)=O(g(n)),这里f(n)是分析出来算法的执行次数的函数,O的定义: 当且仅当存在正的常数c和n0,使得对于所有的n>=n0,有f(n)<=cg(n)。这里cg(n)就是函数f(n)的上限。讲到这是不是很迷糊, ...
分类:
编程语言 时间:
2018-12-23 16:58:26
阅读次数:
264
快速排序算法分析及实现(C++) 目录 [TOC] 算法思想 ? 把n个元素划分为三段:左端Left,中间段middle和右端right。中段仅有一个元素。左端的元素都不大于中间段的元素,右端的元素都不小于中间段的元素。因此可以对lefe和right对立排序,所以,快速排序是一种分治思想,把大问题分 ...
分类:
编程语言 时间:
2018-12-21 16:58:15
阅读次数:
340
1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 ~~~ 在本周指针的学习中,遇到了很多难点,运用起来很不熟练。比如说: 当指针指向一个数组的时候,该如何控制指针指向的地方。int a【10】, p=a。此时指针指向数组的第一个元素。 如何用指针来调换两 ...
分类:
编程语言 时间:
2018-12-17 23:51:14
阅读次数:
326
IA-32指令解析详解 0x00 前言 这段时间忙于考试,信息论和最优化,还有算法分析,有点让人头大。期间花了几天看SEH机制,能明白个大概,但是对于VC++对于SHE的包装似乎还是不是很明白,发现逆向工程核心原理对于这段写的太简单,至于加密与解密则是模棱两可,软件加密技术内幕倒是详解了,可是太老了 ...
分类:
其他好文 时间:
2018-12-15 21:12:33
阅读次数:
495