数据结构学习

什么是数据结构

官方:
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
我的理解:
程序设计 = 数据结构 + 算法
数据结构分为逻辑结构和物理结构。

逻辑结构

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

  1. 集合结构
    集合结构中的数据元素同属于一个集合,他们之间是并列的关系,除此之外没有其他关系。
  2. 线性结构
    线性结构中的元素存在一对一的相互关系
  3. 树形结构
    树形结构中的元素存在一对多的相互关系
  4. 图形结构
    图形结构中的元素存在多对多的相互关系

物理结构

物理结构研究的是数据在存储器中存放的形式。 存储器主要针对于内存而言,
数据在内存中的存储结构,也就是物理结构,分为两种:顺序存储结构和链式存储结构。

  1. 顺序存储结构
    数组就是顺序存储结构的典型代表
    顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的
  2. 链式存储结构
    链式存储结构的数据元素之间是通过指针来连接的
    可以通使用指针来找到某个数据元素的位置,然后对这个数据元素进行一些操作

算法

算法代表着用系统的方法描述解决问题的策略机制。

算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。

算法的设计要求

要设计一个好的算法,需要考虑以下4个特性(其实多半是废话)。

  1. 正确性
    废话,谁会设计一个不能够解决问题的方法。
  2. 可读性
    指算法无论是从设计思路上,还是从注释方面,都要能够保证算法是可读的,也就是可以被其他人员能够读懂的。其实也是废话,这是一个优秀的程序员必备的。
  3. 健壮性
    通俗的讲,一个好的算法应该具有捕获异常/处理异常的能力。另外,对于测试人员的压力测试、边界值测试等刁难的测试手段,算法应该能够轻松的扛过去。
  4. 时间效率高和存储量低
原文地址:https://www.cnblogs.com/rechen/p/5267662.html