博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataStructure part1 基础概念
阅读量:4313 次
发布时间:2019-06-06

本文共 837 字,大约阅读时间需要 2 分钟。

一、基础知识

1、基本概念

数据、数据元素、数据项、数据对象、数据结构

2、逻辑结构和物理结构

逻辑结构:集合结构、线性结构(一对一)、树形结构(一对多)、图形结构(多对多)

物理结构(数据的逻辑结构在计算机中的存储形式):顺序存储结构、链式存储结构

3、数据类型

原子类型:整型、实型、字符型等。(不可再分解)

结构类型:数组等(由若干个类型组合而成,可以再分解)

4、抽象数据类型(ADT):指一个数学模型及定义在该模型上的一组操作(Data+Operation)

 

二、算法

1、算法特性:输入(0+)、输出(1+)、有穷性(有限步骤)、确定性(无二义性)、可行性(每一步可行)

2、算法设计要求:正确性、可读性、健壮性、时间效率高和存储量低

3、函数的渐进增长:给定两个函数f(n)和g(n),如果存在整数N,使得对于所有n>N,f(n)总是大于g(n),那么我们说f(n)的增长渐进快于g(n)

4、算法时间复杂度:T(n)=O(f(n))。

  表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐进时间复杂度,简称时间复杂度。f(n)为问题规模n的某个函数

推导大O阶方法:常熟均为1、只保留最高阶项、最高阶项的系数改为1

常数阶O(1)、线性阶O(n)、对数阶O(logN)、平方阶O(n^2)、nlogn阶

所消耗时间大小依次为:O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)

5、算法的空间复杂度:S(n)=O(f(n))通过计算算法所需的存储空间来实现

  若输入数据所占空间只取决于问题本身,与算法无关,则只需分析算法在计算时所需的辅助单元。若算法在执行时所需的辅助空间相对于输入数据量而言是个常数,则称此算法为原地工作,空间复杂度为O(1)

 

转载于:https://www.cnblogs.com/zzzvictor/p/11097441.html

你可能感兴趣的文章
WM_PAINT
查看>>
动态查看服务器打印日志
查看>>
来自官方的 windows 7 快捷键大全
查看>>
Deep RL Bootcamp Lecture 8 Derivative Free Methods
查看>>
iOS 关于Xcode上的Other linker flags
查看>>
.NET中的程序集(Assembly)
查看>>
第17章:MongoDB-聚合操作--聚合管道--$group
查看>>
Oracle 中wmsys.wm_concat拼接字符串,结果过长报错解决
查看>>
angularjs基础——控制器
查看>>
前端设计师如何提高UI界面中的阅读性
查看>>
APP版本号记录
查看>>
母函数
查看>>
最长不重复子串
查看>>
POJ 3621
查看>>
PHP ajax实现数组返回
查看>>
java web 自定义filter
查看>>
J.U.C Atomic(二)基本类型原子操作
查看>>
POJ---2945 Find the Clones[字典树-简单题(多例输入注意删除)]
查看>>
[Luogu4550] 收集邮票
查看>>
Python-循环
查看>>