第一章:数据结构导论

1.1 数据和信息

    数据:指的是一种未经处理的原始文字(word),数字(number),符号(symbol),图像(graph)等,它所表达的是一种没有评估价值的基本元素或项目、

    信息:当数据经过处理(process),以特定的方式进行处整理,归纳甚至分析后,就成了“信息”。

1.2 算法

算法+数据结构 = 可执行程序

算法的5个条件:
    1.输入
       2.输出
    3.明确性
    4.有效性
    5.有限性

1.3 数据抽象化

    所谓数据类型,是指数据与作用在其上的运算所构成的集合体。数据类型也很多。

1.3.1 基本数据类型
    不同的语言包含的数据类型不同,不过基本就是那几类,整数,浮点数,双精度浮点数,布尔,字符等等。基本数据类型更好一层是指包含其他类型的数据类型,例如C++中的 结构(structure)类型,字符串类型,或者类(class)

1.3.2 抽象数据类型
   “抽象化”是指将现实世界的实体或概念转化成数据结构类型表示,以达到隐藏内部细节,指展示外观的目的。例如 堆栈(Stack)或者队列(Queue),链表(Linked List)

1.4 面向对象程序设计

    每一个对象可以通过对象的外部行为(behavior)和内部状态(state)来进行详细描述。行为代表着对象所显示出来的操作方法,状态则代表内部各特征的当前情况。

属性(attribute)是指对象的静态外观描述,例如一辆车子的颜色、大小等。或是抽象的内在,如车子引擎的马力,排气数等进行描述。

方法(method)是指对象中的动态响应,一种行为模式,可以用来代替一个对象功能。如车子开动,停止。

时间(event)是指对象可以针对外部事件做出的各种响应。

三个特性:
        封装性
        继承性
        多态性

1.5 递归算法

斐波那契数列

int fib(int n)
{
if(n == 0)
return 0 ;
else if(n==1)
return 1;
elsereturn fib(n-1)+fib(n-2);}

汉诺塔
此问题可以分成3个步骤:
步骤1:将n-1个盘子,从木桩1移动到木桩2。
步骤2:将第n个最大盘子,从木桩1移动到木桩3。
步骤3:将n-1个盘子,从木桩2移动到木桩3。
总的移动次数是2的n次方减一。

void hanoi(int n , int p1 , int p2 , int p3)
{
if (n==1)printf("盘子从 %d 移动到 &d\n",p1,p3)
else{hanoi(int n , int p1 , int p3 , int p2)printf("盘子从 %d 移动到 &d\n",p1,p3)hanoi(int n , int p2 , int p1 , int p3)}
}

1.6 程序的效率分析

效率顾名思义就是研究如何以最短的时间,最小的存储空间来运算结果。衡量标准就是:时间复杂度(time complexity),和空间复杂度(space complexity) 。
时间复杂度:
O(1)
O(n)
O(log2n)
O(n
2)
O(n3)
O(2
n)
O(nlog2**n)

O(1)< O(log2n) < O(n)< O(nlog2n)< O(n2)< O(n3)< O(2**n)

《图解数据结构》(第二版)读书笔记相关推荐

  1. 刘鹏老师和王超老师的计算广告第二版读书笔记

    广告的定义与目的 广告的基本概念 广告的分类 在线广告的表现形式 横幅广告 文字链广告 富媒体广告 视频广告 交互式广告 社交广告 移动广告 邮件营销广告 广告的基本概念 需求方:可以是广告主.代表广 ...

  2. 计算广告第二版电子版_88J9-1图集:室外工程-围墙、围栏(第二版),电子版带走...

    88J9-1图集:室外工程-围墙.围栏(第二版),电子版带走 本图集为88J9-1:室外工程-围墙.围栏(第二版).分围墙和钢围栏两大部分,围墙又分砖围墙(代号O)和花格围墙(代号H).钢围栏(代号G ...

  3. 《计算广告》第二版 读书笔记

    在线广告创意类型: 横幅广告 文字链广告 富媒体广告 视频广告 社交广告 移动广告 邮件定向营销广告. 广告发展历程: 合约广告->定向广告->竞价广告 (上下文广告) 术语解释: ADN ...

  4. Python核心教程(第二版)读书笔记(三)

    第三章Python基础 2010-04-09 换行  一行过长的语句可以使用反斜杠'\'分解成几行.有两种例外情况一个语句不使用反斜线也可以跨行. 1.在使用闭合操作符时,单一语句可以跨多行.例如:在 ...

  5. 深入理解JVM(第二版读书笔记)

    一  开始前 HotSpot:http://xiaomogui.iteye.com/blog/857821 http://blog.csdn.net/u011521890/article/detail ...

  6. 《细说PHP》第二版--读书笔记

    第五章 PHP的基本语法 5.2.4 在程序中使用空白的处理 5.3 变量 5.3.1 变量的声明 在php中变量的声明必须是使用一个$符号,后面跟变量名来表示 unset()函数释放指定变量 iss ...

  7. 【我的JS第三本】JavaScript_DOM编程艺术第二版读书笔记

    经过前一段时间HTML&CSS的学习,感觉视频加读书是一个比较不错的学习方法,两者相辅相成,互相补充,所以也准备看看关于JavaScript的书. 2015年12月14日,之前使用韩顺平老师的 ...

  8. sql注入攻击与防御第二版读书笔记二——SQL盲注利用

    寻找并确认SQL盲注 强制产生通用错误 注入带副作用的查询 如 mssql waitfor delay '0:0:5' mysql sleep() 拆分与平衡 5 -> 7-2 常见SQL盲注场 ...

  9. Effective Java 英文 第二版 读书笔记 Item 14:In public classes,use accessor methods,not public fields...

    本章主要分析 公开属性与私有属性提供公开get.set方法两种方式对比 // Degenerate classes like this should not be public! class Poin ...

  10. 《计算传播学导论》读书笔记——第二章文本分析简介

    <计算传播学导论>读书笔记--第二章文本分析简介 第一节 文本分析研究现状 常用文本挖掘技术 第二节 文本分析与传播学研究 (一)为什么文本挖掘技术逐渐受到传播学者的关注 (二)不同文本分 ...

最新文章

  1. 《Bigtable:a distributed storage system for struct data》笔记
  2. 一维码Codabar简介及其解码实现(zxing-cpp)
  3. 利用java反射机制进行对象操作
  4. python截取逗号_Python基础知识: 元组
  5. 台湾国立大学郭彦甫Matlab教程笔记(18) root finding(symbolic)
  6. ref和out的联系及区别(转)
  7. 14 FI配置-财务会计-定义未结清过帐期间变式
  8. 如何在Linux上使用netstat命令查证DDOS***
  9. 呆萌的图模型学习——图基本信息 Networkx基本操作(二)
  10. SqlServer数据冗余的问题和解决
  11. 20年未解的MIT密码难题,被自学成才的程序员破解了,比预计早15年
  12. 修改hostname不重启机器并生效
  13. 机器学习基石PLA相关
  14. 为什么属龙的有二婚命_为什么属龙的有二婚命 一生婚姻运势详解
  15. 天翼如何才能鹏程×××?
  16. 基于jsp(java)学生成绩管理系统的设计和实现
  17. 分类模型confusion matrix混淆矩阵可视化
  18. 服务器winsxs文件夹怎么清理工具,如何清理Win7系统winsxs文件夹中的垃圾?
  19. graphpad两组t检验_如何用GraphPad Prism进行两组连续变量的比较
  20. dnf台服空白mysql文件夹_关于雨泪大神的架设教程遇到的各种问题的解决办法

热门文章

  1. 【寒假每日一题】洛谷 P5734 【深基6.例6】文字处理软件
  2. 网吧强悍助手讯闪4.5详细图文教程(转)
  3. 泰拉瑞亚手机版html,泰拉瑞亚手机版幽灵套装怎么做 幽灵套装ID和属性详解
  4. 冯山C语言第六章作业答案,冯山《山路梅花》阅读答案及翻译赏析
  5. SD卡初始化以及命令详解
  6. MCS-51单片机原理及应用
  7. 创新技术驱动印刷产业转型:惠普全新一代Indigo发布
  8. 将多个png或者jpg图片转为dicom或者nii格式
  9. centos vscode安装到指定目录_centos7 安装和运行在线vscode
  10. 李永乐复习全书高等数学 第一章 函数、极限、连续