数据结构与算法知识小结

数据结构与算法入门的基础概念(摘抄):
数据结构是带有结构性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及他们的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构

数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。

数据的逻辑结构:
指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后关系,而与他们在计算机中的存储位置无关。

  1. 集合
  2. 线性结构
  3. 树形结构
  4. 图形结构

逻辑结构简单分类就分成线性结构和非线性结构

数据的物理结构:
指数据的逻辑结构在计算机存储空间的存放形式,具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
常用两种存储结构:顺序存储结构和链式存储结构。
顺序结构借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
非顺序结构借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。

数据的存储结构:
数据的逻辑结构在计算机存储空间中的存放形式称为数据的物理结构(也称为存储结构)。一般来说,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等。

常用的数据结构:

  1. 数组
  2. 队列
  3. 链表
  4. 散列表

常用的算法:

  1. 检索
  2. 插入
  3. 删除
  4. 更新
  5. 排序

小结:在数据结构与算法的课程里,刚开始因为对概念的不熟悉,有些听着听着就蒙了,直到我边学边从网上搜索一些不懂的概念,先去理解再去计算,不然懵懵懂懂的学,学着学着就烦躁起来,越学越不想学,其实这门课程大部分我已经在代码中去实践过了,只是因为基础不扎实,对这些术语和概念处于懵懂状态,在学的过程中,我类比到代码中,发现也是那么回事。举个例子
比如算法设计的四个要求:

  1. 正确性:算法正确性是指算法达到了测试要求。
    比如需要完成一个新增功能,那接下来写的代码就应该向着这个目标前进并且完成。

  2. 可读性:指人对算法阅读理解的难易程度,可读性高的算法便于交流,有利于算法的调试和修改。
    这个好理解,代码的可读性高是“程序猿”的基本认知

  3. 健壮性:对于非法的输入数据,算法能给出相应的响应,而不是产生不可预料的后果。
    出了一个bug,应该设计有相应的响应,而不是代码直接运行不起来或者崩溃。

  4. 效率与低储存需求:效率指的是算法的执行时间。
    代码效率高,这也是“程序猿”的基本认知

你可能感兴趣的:(数据结构与算法)