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

数据结构与算法概念

作者: 光锥外 | 来源:发表于2020-05-13 13:24 被阅读0次

数据结构研究的内容

  • 数据结构是计算机存储、组织数据的方式。
    数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
    通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
    数据结构往往同高效的检索算法和索引技术有关。
  • 逻辑结构


集合结构
线性结构
树形结构
图形结构

  • 存储结构

    堆栈
    队列
    数组

    二叉树

算法研究的内容

  • 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,
    算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
    如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。
    不同的算法可能用不同的时间、空间或效率来完成同样的任务。
    一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
  • 空间复杂度
    评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。

一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分。  
(1)固定部分。这部分空间的大小与输入/输出的数据的个数多少、数值无关。主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。
(2)可变空间,这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。这部分的空间大小与算法有关。
一个算法所需的存储空间用f(n)表示。S(n)=O(f(n))  其中n为问题的规模,S(n)表示空间复杂度。

  • 时间复杂度
    评估执行程序所需的时间。可以估算出程序对处理器的使用程度。

    • 算法的效率: 算法所处理的数据个数n 的函数。
      关键代码的执行次数
    • O(n) 表示
    • O(n) = n^2 + 3n + 100 == > O(n) = n^2
    • O(n) = n^4 + n^5 + n => On = n^5
    • 下面两段代码等价
  • 方法一

function1() {
   for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j ++) {
        // dosomething;
        }   
   }

   for(int i = 0; i < n; i++) {
    //dosomething   
   }

   // dosomething
}
  • 方法二
 function2() {
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j ++) {
          // dosomething;
        } 
}
  • 如何把这两方面都控制到最合适

    • 程序好坏=空间复杂度+时间复杂度+应用场景(重要)
    • 变量交换的三种方法
    @Test
    public void testSwap() {
        int a = 5;
        int b = 6;
        //1  可读性最好的
        int t=a;a=b;b=t;
        //2
        a=a+b;// a=11  b=6
        b=a-b;// a=11   b=5
        a=a-b;// a=6    b=5
        //3  性能最优(没有可读性)  无人机  跑步
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        System.out.println("a=" + a + "--- b=" + b);
    
    }
    

参考文案

相关文章

  • 数据结构与算法基本概念

    数据结构与算法 本文包括: 算法概念 时间复杂度 大 O 记法 数据结构概念 Python 内置类型的效率 算法的...

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • 数据结构与算法之美1--如何学

    数据结构与算法抓住重点,系统高效地学习数据结构与算法? 概念 广义上讲:数据结构指的是“一组数据的存储结构”,算法...

  • 10.数据结构和算法 初识

    1、数据结构与算法(Python) 数据结构和算法是什么?答曰:兵法! 1.1算法的概念 算法是计算机处理信息的本...

  • 什么是数据结构和算法(一)

    1.1 数据结构和算法的概念 数据结构与算法相辅相成,不会孤立存在;数据结构是为算法服务的,算法是作用在特定的数据...

  • 数据结构与算法 - 查找

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

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

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

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

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

  • 数据结构学习大纲

    第一章 绪论 数据结构基本概念数据结构基本概念算法的基本概念算法的时间复杂度与空间复杂度分析基础时间复杂度分析空间...

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

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

网友评论

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

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