有关数据结构基础知识(数据结构 严蔚敏版)
1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科
2. 研究包括逻辑结构和存储结构
1) 逻辑结构(从具体问题抽象出来的数学模型)分为
集合结构 线性结构 树结构 图结构(分类依据是元素之间的关系不同)
2)存储结构(也称物理结构 逻辑结构在计算机的存储表示)分为
顺序存储结构 链式存储结构
3. 抽象数据类型是由用户定义 表示应用问题的数学模型 以及定义在这个模型一组操作的总称 包括数据对象 数据对象上关系的集合 数据对象基本操作的集合
4. 算法(为了解决某类问题而规定的一组有限长的操作序列)
算法的五个特性:有穷性 确定性 可行性 输入和输出
算法优劣的评价:正确性 可读性 健壮性(鲁棒性) 高效性
5. 算法分析的两个主要方面
频度:一条语句重复执行次数;
规模:算法求解问题的输入量;
算法时间复杂度(即算法的运算时间 表示方法T(n)=O(f(n)))
常见的时间复杂度排列顺序
常数阶 对数阶 线性阶 线性对数阶 平方阶 立方阶 k次方阶
算法空间复杂度(表示方法S(n)=O(f(n)))
6.一些术语
- 数据:用客观事物的符号表示 是所能输入到计算机中并被计算机程序处理的符号的总称
- 数据元素:是数据的基本单位在计算机中通常作为一个整体处理和考虑
- 数据项:是组成数据的 有独立含义的 不可分割的最小单位
- 数据对象:是性质相同的数据元素的集合,是数据的子集
- 数据结构:是相互之间存在一种或多种特定关系的数据关系的集合
- 数据类型:一个值的集合和定义在这个值集上的一组操作的总称
附几道教科书上的习题:
1.与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。
A.存储结构 B.存储实现
C.逻辑结构 D.运算实现
2.以下说法正确的是( )。解释:数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
3.(1)x=90; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
答案:O(1)
解释:程序的执行次数为常数阶。
(2)for (i=0; i<n; i++)
for (j=0; j<m; j++)
a[i][j]=0;
答案:O(m*n)
解释:语句a[i][j]=0;的执行次数为m*n。
(3)s=0;
for i=0; i<n; i++)
for(j=0; j<n; j++)
s+=B[i][j];
sum=s;
答案:O(n2)
解释:语句s+=B[i][j];的执行次数为n2。
(4)i=1;
while(i<=n)
i=i*3;
答案:O(log3n)
解释:语句i=i*3;的执行次数为 log3n。
(5)x=0;
for(i=1; i<n; i++)
for (j=1; j<=n-i; j++)
x++;
答案:O(n2)
解释:语句x++;的执行次数为n-1+n-2+……+1= n(n-1)/2。
(6)x=n; //n>1
y=0;
while(x≥(y+1)* (y+1))
y++;
答案:O(x^(1/2))
解释:语句y++;的执行次数为 x^(1/2)。
转载于:https://www.cnblogs.com/lnzhangsong/p/5088937.html
有关数据结构基础知识(数据结构 严蔚敏版)相关推荐
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(一)
这里用的是严蔚敏版<数据结构 (C语言版)>和<数据结构题集>,深感自己的代码写得又渣又无力,打算把这本书好好琢磨透彻,里面的算法和模板都实现一遍,题目也都做一遍.最终能够做到 ...
- 数据结构实验(严蔚敏版)----栈与队列
数据结构(严蔚敏版)配套实验报告册--栈与队列基本操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h ...
- 严蔚敏版数据结构(C语言版)算法实现代码
严蔚敏版数据结构(C语言版)算法实现代码 数据结构(C语言版)代码实现 线性表 顺序表 链表 单向链表 静态链表01 静态链表02 双向循环链表 栈与队列 栈 顺序栈 进制转换 行编辑器 未完待续.. ...
- 数据结构头文件《Fundamentals of Data Structures in C (2nd Edition) 》/严蔚敏版《数据结构》
#ifndef _PUBLIC_H_ #define _PUBLIC_H_#include <malloc.h>//动态分配储存空间 #include <stdlib.h> # ...
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...
栈的顺序表实现 1 #include <iostream> 2 #include <stdlib.h> 3 #include <stdio.h> 4 #define ...
- Algorithm:【Algorithm算法进阶之路】之数据结构基础知识
Algorithm:[Algorithm算法进阶之路]之数据结构基础知识 相关文章 Algorithm:[Algorithm算法进阶之路]之数据结构二十多种算法演示 Algorithm:[Algori ...
- 数据结构基础知识(2)
内容接自<数据结构基础知识(1)>... 链表的分类 单链表 单链表是一种链式存取的结构,为找第 i 个数据元素,必须先找到第 i-1 个数据元素.图中阴影区域表示数据域,空白区表示指针域 ...
- 数据结构基础知识核心归纳(一)
数据结构基础知识核心归纳(一) 转载请声明出处:http://blog.csdn.net/andrexpert/article/details/77900395 Android ...
- 1. 数据结构基础知识
1. 数据结构基础知识 基本概念 线性结构:结构中的数据元素之间只存在一对一的关系. 树形结构:结构中的数据元素之间存在一对多的关系. 图状结构或网状结构:结构中的数据元素之间存在多对多的关系. 数据 ...
最新文章
- Ubuntu 18 snap 占用 100%,卸载 snap
- 华为手机设置代理网络就无法使用_华为手机一定要了解的7个设置!1秒开启使用,实在太强大了...
- tomcat苹果版安装步骤_Mac系统安装和配置tomcat步骤详解
- 北电PBX资料_LD 17 系統結構指令設定
- [YTU]_2907(类重载实现矩阵加法)
- VS2013配置opencv教程(图文详解)
- boost::test模块混洗下运行的单元测试的测试顺序
- CVPR2014: DeepID解读
- 聚焦2020云栖大会 边缘计算专场畅谈技术应用创新
- java list 分组_Java8 快速实现List转map 、分组、过滤等操作
- 苹果id登录_英雄联盟手游是用苹果ID好还是拳头好 账号选择建议_英雄联盟手游...
- 【LeetCode - 247】中心对称数 II
- 绩效考核如何尽量公正
- C. Mortal Kombat Tower(DP 走台阶问题)
- 云科技时代,微软纳德拉与小米雷军为什么走到一起?
- 等额本息和等额本金还款在R中的实现
- 关于0x3f3f3f3f(0x四个3f)
- idea Translation IP 地址无法访问
- silverlight 得到 控件 鼠标 的位置
- 用Python对CAPM和Fama French Three Factor model的初步学习
热门文章
- python 链表两数相加
- pytest第二版 进阶学习
- 南邮计算机图形学水不水,南邮计算机图形学实验报告(修正版)….doc
- getPath()和getResource()找不到文件(NullPointerException)的原因(idea创建properties文件)
- python的目的及应用_python Django中的apps.py的目的是什么_python_脚本之家
- pc双网卡实现路由转发_route命令如何使用?如何利用route命令实现内外网切换?...
- java8 垃圾收集_面试官:怎么做JDK8的垃圾收集器的调优(面试常问)
- 找不到java.vbs_无法找到脚本*.VBS的脚本引擎解决办法
- SVM+HOG:用初次训练的.xml分类器在负样本原图上检测生成HardExample样本
- 第三天2017/03/30(下午:二级指针的(输出)内存模型)