开发者社区> 扎克蕉> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

程序员必备——数据结构入门

简介: 数据结构是计算机存储、组织数据的方式。在这篇笔记中,记录了常见的线性表、栈与队列、树、图、排序和查找算法等知识点,精心选择这些数据结构可以带来更高的程序运行效率。
+关注继续查看

前言:数据结构与算法作为计算机经典的基础理论课程,同时作为计算机类专业考研课程,并且在校招面试时常被提及,其重要性可见一斑。除此之外,学习这门课程有助于我们用编程去解决、思考问题,设计出更简洁、效率更高的代码。

一.课程概述

  • 数据结构课程研究什么?

    • 内存中基本数据组织和数据处理的方法
    • 非数值问题
  • 通过学习数据结构获得什么?

    • 经典数据结构和经典算法的基本原理
  • 学习重点

    • 数据结构的逻辑特性和存储结构设计
    • 数据结构算法设计基本方法和分析方法
    • 利用数据结构解决实际问题

二.基本概念与术语

  • 数据

    • 能输入到计算机中,被程序识别和处理的一切事物的符号化表示
  • 数据元素

    • 数据的基本单位
  • 数据项

    • 构成数据元素的最小单位
  • 存储结构(由想法到算法)

    • 顺序存储结构
    • 链式存储结构
  • 逻辑结构(由问题到想法)

    • 一种逻辑结构可由多种存储结构实现
  • 数据结构

    • 逻辑结构
    • 存储结构
    • 数据运算
  • 抽象数据类型(ADT)

    ADT 抽象数据类型名{
        数据对象的定义
        数据元素之间的逻辑关系定义
        基本运算定义
    }ADT
  • 算法的定义

    • 基于存储结构的运算实现的步骤
    • 满足有穷性确定性可行性
    • 有0个或多个输入,1个或多个输出
  • 什么是好的算法

    • 正确性:对于合法输入,算法能得出正确结果
    • 健壮性:对于非法输入,算法能做出特别处理
    • 可理解性:算法容易理解、实现
    • 高效性:具有较短执行时间并占用较少空间
    • 可修改、可拓展性

三.算法分析

  • 时间复杂度

    • 是算法求解问题规模n的函数,T(n)=F(n),F(n)是基本语句的执行频度
    • 增长率:忽略低次幂和最高次幂系数
  • 分析规则

    • 加法规则:针对并列程序段
    • 乘法规则:针对嵌套程序段
  • 例子

  • 常见的时间复杂度

    O(1)<(log2n)<(n)<(nlog2n)<(n²)<...<(2的n次方)<(n!)
  • 空间复杂度

    • 除去输入输出占用空间,算法临时占用的存储空间
    • S(n)=O(f(n))

完整内容可以访问我的个人博客:数据结构 515code.com

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
作为程序员你真的清楚数据结构吗
作为程序员你真的清楚数据结构吗
23 0
【数据结构】栈(C++ )
【数据结构】栈(C++ )
17 0
【数据结构】堆(C++)
【数据结构】堆(C++)
23 0
<数据结构>单向链表
目录 一、对比顺序表 二、概念 三、必备工作 3.1、创建单链表 3.2、动态申请节点 3.3、单链表打印 3.4、销毁单链表 四、增删查改 4.1、插入数据 头插 尾插 在pos位置前插入x 在pos位置后插入x 4.2、删除数据 头删 尾删 删除pos
45 0
数据结构——单向链表
数据结构——单向链表
35 0
数据结构与算法——字符串
题型1:如何统计字符中有多少个单词? 方法1:使用空格作为分隔。如果测出某一个字符为非空格,而它前面的单词是空格,则表示“新的单词开始了”此时单词数count累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,count不应再累加1. 方法2:使用sstream中的isstreamstring实现单词的分隔,将字符串赋值给isstreamstring,以空格将单词分开。
838 0
数据结构——线性表
1 线性表的特性是数据元素之间在逻辑结构上存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。用前者表示的线性表简称为顺序表,用后者表示的线性表简称为链表。 2 当线性表的长度n=0时,为一个空表。当n&gt;0时,序列中必存在唯一的一个“第一个元素”,也必存在唯一的一个“最后一个元素”。除第一个元素外,每一个元素均有唯一的前驱;除最后一个元素外,
807 0
数据结构--线性表
基本概念 线性表:有n(n>=0)个相同数据类型数据元素组成的线性结构。其实现方法见图。 线性结构:除了第一个和最后一个数据元素,其余各元素只有一个前驱元素和后继元素,第一个数据元素只有一个后继元素,最后一个数据元素只有一个前驱元素。
691 0
+关注
扎克蕉
Later equals never.
10
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载