算法系统学习-轻轻‘撬’开算法的入门

简介: 该系列是基于有一定语言基础(C,C++,Java等等)和基本的数据结构基础进行的算法学习专栏,如果觉得有点吃力 😥 ,建议先了解前提知识再学习喔!本个专栏会将用更容易理解的表达去学习算法,如果在一些表述上存在问题还请各位多多指点

算法基础概念


对解决问题的求解步骤的描述,在计算机中表现为指令的有限序列,并且每天指令表示一个或多个操作。其实算法并不是个陌生词汇,例如小学的加减乘除中“先算乘除,后算加减”就是四则运算的算法。到后面文章要讲的指数运算,矩阵运算以及其他的代数运算都是一种算法。

简单来说:算法就是你解决问题的技巧和方式。


算法=控制结构+原操作(对固有数据类型操作)


算法三要素:

操作:

  1. 算术运算:加,减,乘,除
  2. 关系比较:大于,等于,小于,不等于
  3. 逻辑运算:与,或,非
  4. 数据传送:输入,输出,赋值

控制结构:

  1. 顺序结构
  2. 选择结构
  3. 循环结构

数据结构:

算法操作的对象是数据,数据间的逻辑关系,数据的存储方式以及处理方式就是数据的数据结构。它和算法设计息息相关。


算法基本性质:

  1. 目的性:算法有明确的目的,能完成赋予它的功能
  2. 分布性:完成其复杂的功能,由一系列计算机可执行的执行顺序
  3. 有序性:步骤是有序的,不可以随便改变算法步骤的执行顺序
  4. 有限性:是有限的指令序列,所包含的步骤是有限的
  5. 操作性:有意义的算法总是对某些对对象进行操作,使其改变状态,完成其功能


算法设计及基本方法


设计时考虑的质量指标:

  1. 正确性:首先对于一切合法的输入数据都能得到满足要求的结果。
  2. 可读性:本质上为了与人的阅读与交流,其次才是让计算机执行,算法应该易于人理解;另一方面,晦涩难读的程序比较容易隐藏多的错误而难以调试。如果一个算法只有设计者才能够理解,那么注定是个失败的算法。
  3. 稳健性:当输入一些非法的数据时,算法应该能够恰当给出反应和进行处理,而不是产生莫名其妙的的输出结果。
  4. 高效率和低存储需求:效率指的是算法执行时间,存储量指的是算法执行过程中所需的最大存储空间,(也就是后面所说的时间复杂度,空间复杂度)


基本方法:

  1. 结构化方法:结构化方法总的指导思想是自顶向下逐步求精,它的基本原则是功能的分解和模块化

拓展:

1. 自顶向下:

将现实世界的问题经过抽象转化为逻辑空间或求解空间的问题,将复杂的大问题划分成小问题,找出问题的关键和重点,然后抽象的,概括地描述问题。

2. 逐步求精:

将复杂的问题抽象化处理变味相对比较简单的问题,经过若干步精化处理,最后细化到用“3种基本结构”以及基本操作去描述

3. 模块化:把一个大程序按照一定的原则划分成若干个相对独立但相关的小模块的方法(就像一辆车,音响系统,动力系统,他们是单独的模块,但是他们又是相关的)

2.面向对象方法:

所谓的对象是包含数据和对数据操作代码的实体,或者是说在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。(因为这个方法是比较主流的编程思想具体不过多阐述)


表示算法的方式(了解):

  1. 自然语言
  2. 流程图

网络异常,图片无法展示
|

  1. 盒图(NS流程)

网络异常,图片无法展示
|

  1. PAD图(问题分析图)
  2. 伪代码:是用介于自然语言和计算机语言之间的文字和符号来描述算法的一种工具,它不用图形符号,因此书写方便格式紧凑,易于理解,便于计算机程序设计语言实现。(重点内容)简单理解就是不能直接运行的代码,但是可以看的懂

计算机求解问题的步骤:

  1. 分析问题
  2. 建立数学模型(重点)
  3. 算法设计与选择
  4. 算法表示
  5. 算法分析
  6. 算法实现
  7. 程序测试和调试
  8. 结果整理和文档编制
目录
相关文章
|
11天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
4天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
21 3
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
【EMNLP2024】基于多轮课程学习的大语言模型蒸馏算法 TAPIR
阿里云人工智能平台 PAI 与复旦大学王鹏教授团队合作,在自然语言处理顶级会议 EMNLP 2024 上发表论文《Distilling Instruction-following Abilities of Large Language Models with Task-aware Curriculum Planning》。
|
11天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
11天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
11天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
11天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
11天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人之数据结构与算法系列学习×单双链表精题详解、数据结构、C++、排序算法、java 、动态规划 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
18天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
3天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
下一篇
无影云桌面