摘要:
Why Internet working? 1. To build a “ network of networks ” or internet. 2. operating over multiple, coexisting (共存的), different networks 3. providing 阅读全文
摘要:
表达式 中缀表达式 我们平常使用的表达式就是中缀表达式,运算符放在运算数之间,易于理解,但是优先级不易确定,例如:a+b c d/e。 后缀表达式 运算符放在运算数之后,从左向右“扫描”后缀表达式,逐个处理运算数和运算符。例如:abc +de/ 。 前缀表达式 运算符放在运算数之前,与后缀表达式类似 阅读全文
摘要:
堆栈实现 实际上是单链表实现,栈顶在链表头,PUSH和POP都在头操作。不可以在链表尾操作,因为链表尾无法找到上一个节点。 优点:无需事先分配内存。 初始化 创建堆栈 检测非空 PUSH 创建一个新的头结点,指向原头结点 POP 创建一个指针指向原头结点,将第二个结点作为新的头结点,free原头结点 阅读全文
摘要:
堆栈 先入后出 数组实现 缺点:需要先申请指定大小的内存,需要检验是否非空是否栈满。 操作:生成堆栈、检验非空、检验是否已满、入栈(PUSH),出栈(POP)。 初始化 PUSH POP 用一种方法 用一个数组实现两个栈,有空间就能push。 初始化 PUSH POP 阅读全文
摘要:
线性表 单向链表实现: 优点:便于插入和删除 缺点:查找数据需要遍历 声明 一个数据+一个指针 求表长 遍历表,当指向节点的指针为NULL时停止 查找数据 当指针不为NULL或者未找到数据时,继续循环 按值查找 按序号查找 插入数据 当插在第一个位置时:创建节点,让该节点直接指向头结点。 当插在第i 阅读全文
摘要:
线性表 数组实现: 优点:便于查找 缺点:插入和删除要移动大量数据 声明以及定义 初始化建立空的顺序表 查找数据 插入 删除 关键点 有一个last指示最后一个数据的位置,初始时last= 1。 插入删除整体移动,注意不要把其它数据覆盖。 阅读全文
摘要:
前言 最大子列和是一个经典算法问题,在《算法导论》中有一歌股票问题的应用。已知一周的股票价格,考虑在正常的时间顺序下,想在最低价买进,最高价卖出,求出这段区间。 可以构建一个新的数组,每一个数都是该天与前一天之差,然后就转化为求最大子列和的问题。 O(n^3)——最差暴力求解 算出每一个子列和,大于 阅读全文
摘要:
空间复杂度 根据算法写成程序执行占用存储单元的长度。 与输入数据的规模有关。 空间复杂度过高可能导致使用的内存超限,造成程序非正常中断。 时间复杂度 根据算法写成的程序在执行时耗费时间的长度。 这个长度往往也与输入数据的规模有关。 时间复杂度过高可能导致我们有生之年都等不到运行结果。 分析窍门 遇到 阅读全文
摘要:
前言 在C语言中,有一种技巧可以比较程序运行的时间,就是使用clock()函数。 clock() 用于捕捉从程序开始运行到clock()被调用时所耗费的时间。时间单位是clock tick,“时钟打点”。 常数CLK_TCK (CLOCKS_PER_SEC):机器时钟每秒所走的时钟打点数。 使用套路 阅读全文
摘要:
前言 本文为观看Cousera的Michigan《Internet History, Technology and Security》教程的个人学习笔记,包括了每个week的概要和个人感想,供个人温故。week 1为中文,之后就用英文写了,不为其他,只是觉得看英文视频用英文总结,这样更自然些。 we 阅读全文