美文网首页
数据结构与算法概述

数据结构与算法概述

作者: xxRoy | 来源:发表于2020-04-01 00:14 被阅读0次

程序 = 数据结构 + 算法
            ---某图灵奖得主

数据结构

基本数据单位

基本数据单位

数据>>数据对象>>>数据元素>>>>数据项


逻辑结构

常见的几种结构有集合结构线性结构树形结构图形结构,其中:

线性结构:有序数据元素集合,比如队列、栈、字符串、数组、链表
树形结构:一对多,比如二叉树,红黑树

物理结构

顺序存储结构
链式存储结构
分两种,一种是顺序存储结构,一种是链式存储结构

算法

解决特定问题的指令序列

特点:输入输出、有穷性、确定性、可行性
评价标准:正确性、可读性、健壮性、效率高

效率度量

时间复杂度
大O表示法
  1. 用常数1取代运行时间中所有常数 3->1 O(1)
  2. 在修改运行次数函数中,只保留最高阶项 n^{3}+2n^{2}+5 -> O(n^{3})
  3. 如果在最高阶存在且不等于1,则去除这个项目相乘的常数 2n^{3} ->O( n^{3})
常见的时间复杂度
执⾏次数函数 术语
12 O(1) 常数阶
2n+3 O(n) 线性阶
3n^{2}+2n+1 O(n^{2}) 平方阶
5\log_2{n} + 20 O(\log_2{n}) 对数阶
2n+3n\log_2{n}+19 O(n\log_2{n}) n\log_2{n}
6n^{3}+2n^{2}+3n+4 O(n^{3}) ⽴方阶
2n O(2n) 指数阶

时间复杂度描述的是算法的最坏情况。

空间复杂度(转载_罗小黑)

对于一个算法,所有的变量、指令、结果都需要存储空间,另外在算法的执行过程中,临时变量和临时结果也需要保留下来以便下一步计算,这些称为算法执行时的辅助空间。空间复杂度主要定性描述算法所需的辅助空间。

空间复杂度相对来说比较简单,只需要关注算法在执行时消耗的辅助空间即可,例如,swap() 函数中 temp 元素的消耗就是辅助空间。当然这个函数还能更高级,看大佬这里

一个好的算法是什么样的?

正确性高、可读性强、健壮性高、效率高
正确性:毋庸置疑,首先必须正确,切实解决问题;
可读性:代码规范,易读注释,逻辑清晰,简单明了,但不是代码越少越好;
健壮性:输入考虑容错、边界值、输出;
效率:时间、空间按业务取舍;

欢迎留言讨论

相关文章

  • 最新完整数据结构与算法

    最新完整数据结构与算法 P11_课程介绍 P22_数据结构与算法概述_数据结构 P33_数据结构与算法概述_算法 ...

  • 基于数据结构和算法的业务应用(一)

    数据结构、算法到底什么?算法如何再业务中应用? 一 概述 1.1 数据结构的概述 1.1.2 概述 数据结构是计算...

  • 数据结构与算法

    概述 程序 = 数据结构 + 算法,数据结构和算法与语言无关,数据结构是管理和存储数据的方法,算法是解决问题的方法...

  • 九、哈希表

    这一节记录一下哈希表的学习 持续更新中...数据结构与算法系列博客:一、数据结构与算法概述二、数组及LeetCod...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • DES算法实现

    实验目标 完成一个DES 算法的详细设计,内容包括: 算法概述; 总体结构; 数据结构。 实验概述 算法原理 DE...

  • 数据结构与算法概述

    初衷 学习数据结构与算法的知识,并没有一个完备的理由。如果是作为一名算法工程师,这无可厚非,但对于我们大部分的开发...

网友评论

      本文标题:数据结构与算法概述

      本文链接:https://www.haomeiwen.com/subject/syvwuhtx.html