数据结构-浙大 MOOC 笔记一 基本概念
做一些笔记记录自己的学习过程
第一节课介绍了数据结构的基本概念,首先没有直接给出相关的定义而是通过思考如何在书架上摆放书籍这样一个简单的类比了解到数据的组织方式的重要性,并通过printN函数的循环实现和递归实现的差异来说明解决问题方法的效率跟空间的利用效率有关,计算多项式在某一个给定点处的值来说明解决问题方法的效率与算法的设计有关。
void PrintN(int N)
{int i;
for (i=1;i<=N;i++){
printf("%d\n",i);
}
return;
} //循环实现
void PrintN (int N)
{
if (N){
PrintN(N-1);
printf("%d\n",N);
}
return;
} //递归实现
double f( int n, double a[], double x)
{ int i;
double p=a[];
for (i=; i<=n; i++)
p+= (a[i]* pow(x,i));
return p;
} //循环实现
double f( int n, double a[], double x)
{ int i;
double p= a[n];
for (i=n; i>; i--)
p = a[i-] + x*p;
return p;
} //递归实现
在进行算法分析和比较的过程中,我们会有实际进行程序运行时间的计算内容,这就需要用到clock()函数;
运行的模板如下
int main ()
start = clock();
MyFunction();
stop= clock();
duration = ((double) (stop= start)) / CLK_TCK
其中CLK_TCK 表示机器时钟每秒所走的时钟打点数
自然推导出相关的结论说明数据结构是关于 对象结构+操作+算法三个部分的内容
第一讲的最后又简单介绍了抽象数据类型的定义 (Abstract Data Type)
数据对象集 + 数据集合相关联的操作集
抽象表示实现方法不依赖于具体实现,under the hood部分的内容不做考虑,只关心开车不关心怎么造汽车的一个过程。
比如矩阵作为一种抽象数据类型
可以从以下几点来考虑

1.2 什么是算法?
- 有限的指令
- 接受一些输入
- 产生输出
- 在有限步骤之后终止
- 每一条指令必须 a.明确 b.计算机可处理 c.不依赖单独某一种特定的计算机语言
时间复杂度 与 空间复杂度的计算技巧
for 循环则相乘
if- else 取决于if条件判断复杂度和两个分枝部分的复杂度三者中的最大值
T1(n) + T2(n) = max
T1(n) * T2(n) = O (f1(n)*f2(n))
1.3 最大子列和问题-实例分析
算法1: 累加
for (i=; i<=n; i++){
ThisSum=;
for (j=i; j<=n; j++){
ThisSum+=A[j];
if (ThisSum> MaxSum)
MaxSum= ThisSum;
}
}
算法2: 分而治之
左 中 右

可以达到O(nlogn) 的时间复杂度
算法3: 在线处理
for (i=; i<N; i++) {
ThisSum+=A[i];
if (ThisSum> MaxSum)
MaxSum=ThisSum;
else if (ThisSum < )
ThisSum=;
}
根据“连续”条件作出的高效处理,如果是负数则直接舍弃,不做加和操作。
可以达到 O(n)的时间复杂度,遍历一次即可得到结果。
今天上完这门课程的第一讲,感觉课程内容还是比较简单清楚的,相比于学堂在线的MOOC数据结构,该课程难度会低一些,不过涉猎的范围会广一些,方便个人打基础。
数据结构-浙大 MOOC 笔记一 基本概念的更多相关文章
- 数据结构 浙大MOOC 笔记二 线性结构
线性表及其表现 第二章的内容是关于三种最基本的数据结构 结合<DDSA>第三章 表.栈和队列做一个总结 首先简单说明一下各个数据结构的特点: 数组:连续存储,遍历快且方便,长度固定,缺点是 ...
- JavaScript:学习笔记(2)——基本概念与数据类型
JavaScript:学习笔记(2)——基本概念与数据类型 语法 1.区分大小写.Test 和 test 是完全不同的两个变量. 2.语句最好以分号结束,也就是说不以分号结束也可以. 变量 1.JS的 ...
- Linux内核设计与实现笔记_1_基本概念
Linux内核设计与实现笔记_1_基本概念 操作系统 系统这个词包含了操作系统和所有运行在它上面的应用程序.操作系统是指在整个系统中负责完成分最基本功能和系统管理的那些部分,这些部分应该包括: 内核, ...
- 【阅读笔记】rocketmq 概念与架构 (一)
介绍 rocketmq 框架与基本概念 1. 概念 1.1 namesrv(name server) 记录了 broker 集群信息,消息队列的信息以及 key-value 配置,见 RouteInf ...
- 浙大MOOC《数据结构》随笔
第一讲 基本概念 1.1 什么是数据结构 图书摆放问题: 新书如何插入? 先定类别,再二分查找 怎么找到指定某本书? 二分查找 写程序实现一个函数PrintN 循环实现 void PrintN(int ...
- 数据结构入门第二课(浙大mooc)
数据结构入门第二课 目录 数据结构入门第二课 引子 多项式的表示 方法1 顺序结构表示多项式各项 方法2 顺序结构表示非零项 方法3 链表结构存储非零项 多项式问题的启示 线性表 线性表的抽象数据类型 ...
- ROS学习笔记2-基本概念
本笔记来源于:http://wiki.ros.org/ROS/Concepts ROS文件系统级别文件系统级别主要包含了你能在ROS的磁盘上遇到的资源,包括: 包(Packages):包是ROS中资源 ...
- linux设备树笔记__dts基本概念及语法【转】
转自:http://www.360doc.com/content/15/1113/11/15700426_512794532.shtml 设备树手册(Device Tree Usage)原文地址:ht ...
- es6学习笔记-class之一概念
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...
随机推荐
- Mysql完全手册(笔记二,使用数据与性能优化)
一.使用数据 1.使用变量 MySQL也可以让我们以用户自定义的变量来存储select查询的结果,以便在将来select查询中使用.它们只会在客户会话期间存在,但是它们提供一个方便有效的方法来连接查询 ...
- [LeetCode] Balanced Binary Tree 平衡二叉树
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- java.io.IOException: mark/reset not supported
java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...
- Stream与byte[]与Image与string
public byte[] GetByteImage(Image img) { byte[] bt = null; if (!img.Equals(null)) { using (MemoryStre ...
- 两种遍历list
li=[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]s=0for i in range(0,5): for j in ran ...
- C#委托与事件
一.在控制台下使用委托和事件 我们都知道,C#中有"接口"这个概念,所谓的"接口"就是定义一套标准,然后由实现类来具体实现其中的方法,所以说"接口,是 ...
- oracleXE(oracle学习版)在windows的安装配置
oracleXE其实安装基本就是一路下一步. 在安装前记得先把tomcat打开,不然oracleXE会占用8080端口且安装过程无法更改端口. 如果需要远程连接此oracle XE的话,要关闭这台电脑 ...
- ubuntu下载工具uget和aria2
一直想在ubuntu下找到个和迅雷差不多的下载工具.在网上找到了. 这篇文章完全是抄袭整理网上的. 我的系统版本是ubuntu14.04. 1.安装uget和aria2 sudo apt-get in ...
- Dictionary
命名空间:System.Collections.Generic(程序集:mscorlib) Dictionary<TKey, TValue> 类 一般用法:通过key获取value,k ...
- History lives on in this distinguished Polish city 2017/1/4
原文 History lives on in this distinguished Polish city Though it may be ancient. KraKow, Poland, is a ...

