• 如何学习算法


    看懂程序的方法:

          1. 看流程(即步骤)

          2. 看功能

          3. 试数

          4. 敲,试错(如果实在不会看懂程序再敲)

    算法:

      狭义的算法是与数据的存储方式密切相关

      广义的算法与数据的存储方式无关

      泛型:  利用某种技术达到的效果就是: 不同的存储方式,执行的操作是一样的

    数据结构

      狭义:

      数据结构是专门研究数据存储的问题

      数据的存储包含两个方面: 个体的存储 + 个体关系的存储

      广义:

        数据结构既包含数据的存储也包含数据的操作

          对存储数据的操作就是算法

    数据的存储结构有几种:

     线性结构:连续存储【数组】

           优点:存取速度很快 

           缺点:事先必须知道数组的长度,插入删除元素很慢,空间通常是有限制的,需要大块连续的内存块

          离散存储【链表】

          优点:空间没有限制, 插入删除元素很快

          缺点:存取速度很慢

     线性结构的应用:栈和队列

       栈

        定义: 一种可以实现“先进后出”的存储结构

        分类:静态栈

           动态栈

        算法:出栈

           压栈

        应用:函数调用;中断;表达式;内存分配;缓冲处理;迷宫

        队列

         定义: 一种可以实现“先进先出”的存储结构

         分类:链式队列: 用链表实现

         静态队列: 用数组实现

           静态队列通常必须是循环队列

         循环队列的讲解:

           1. 静态队列为什么必须是循环队列

           2. 循环队列需要几个参数来确定 

             需要两个参数来确定:front和rear

           3. 循环队列各个参数的含义

           建议初学者先记住,然后慢慢体会

           1). 队列初始化:front和rear的值都为零

           2). 队列非空:front代表的是队列的第一个元素;rear代表队列的最后一个有效元素

           3). 队列空: front和rear的值相等,但不一定是零

           4. 循环队列入队伪算法讲解

             两步完成:

            1. 将值存入r所代表的位置

            2. 错误的写法: r = r+1;

               正确的写法: r = (r+1)%数组的长度

           5. 循环队列出队伪算法讲解

              f = (f+1)%数组的长度

           6. 如何判断循环队列是否为空

              如果front=rear,则队列一定为空

           7. 如何判断循环队列是否已满

           预备知识: front的值可能比rear大,也可能比rear小,当然也可以两者相等

           两种方式:

            1. 多增加一个标识参数

            2. 少用一个元素(通常用第二种方式)

              如果r和f的值紧挨着,则队列已满。

             用c语言伪算法表示为:

             if((r+1)%数组长度==f)

               已满

             else

               不满

               队列算法:入队,出队

              队列的具体应用: 所以和时间有关的操作都有队列的影子

      

      非线性结构: 树,图

  • 相关阅读:
    javaScript设计模式:装饰模式
    搭建自动签到服务
    Gmail邮箱注册
    springcloud3(六) 服务降级限流熔断组件Resilience4j
    PCB
    行业_激光
    Git设置Http代理,克隆github上的代码
    工控机与运动控制卡
    锂电池生产工艺
    PCB涂胶工艺
  • 原文地址:https://www.cnblogs.com/spore/p/11080092.html
Copyright © 2020-2023  润新知