zoukankan      html  css  js  c++  java
  • 数据结构学习

    什么是数据结构

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

    逻辑结构

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

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

    物理结构

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

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

    算法

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

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

    算法的设计要求

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

    1. 正确性
      废话,谁会设计一个不能够解决问题的方法。
    2. 可读性
      指算法无论是从设计思路上,还是从注释方面,都要能够保证算法是可读的,也就是可以被其他人员能够读懂的。其实也是废话,这是一个优秀的程序员必备的。
    3. 健壮性
      通俗的讲,一个好的算法应该具有捕获异常/处理异常的能力。另外,对于测试人员的压力测试、边界值测试等刁难的测试手段,算法应该能够轻松的扛过去。
    4. 时间效率高和存储量低
  • 相关阅读:
    HDU 5744
    HDU 5815
    POJ 1269
    HDU 5742
    HDU 4609
    fzu 1150 Farmer Bill's Problem
    fzu 1002 HangOver
    fzu 1001 Duplicate Pair
    fzu 1150 Farmer Bill's Problem
    fzu 1182 Argus 优先队列
  • 原文地址:https://www.cnblogs.com/rechen/p/5267662.html
Copyright © 2011-2022 走看看