今日份算法
文章来自《算法解读》漫画版
第一章:什么是算法
算法 是利用计算机解决问题的处理步骤
算法种类:
1.技术计算
2.排序
3.查找
4.字符串模式匹配
算法的基础--结构化程序设计的思想
有一种编程思想叫做结构化程序设计
a.顺序结构……按照所述顺序处理
b.选择结构……根据判断条件改变执行流程
c.循环结构……当条件成立时,反复执行给定的处理操作
第二章 变量和数组
算法是解决问题并获得结果的过程
其次,算法的处理过程中,也需要各种临时的数据
本章中,我们将学习保存和管理算法中必要数据的变量及数组
“数据”到底是什么,数据是多种不同信息的表现。如:食谱的数据。
计算机程序中的算法也是如此,为了解决问题需要使用各种数据。
因此,所有的算法是“处理”与“数据”的相互结合
要点:check 》》“数据”是各种信息的表现形式
》》“算法”表现为“处理”和“数据”的结合
要点:check 》》处理信息的种类分组称为“数据类型”
》》常用的数据类型有“整数型”,“浮点型”,“字符型”,“字符串型”,“布尔型”
在算法中,当我们对一些数据进行操作是,需要保存在这些数据的空间,我们把这些空间称为变量
》》变量通过“变量名”区分
连续排列的相同数据类型的元素集合称为数组
此外,也可以把数据想象成拥有相同大小抽屉的衣柜
为了保存大量的数据我们可以使用数组,数组是变量的箱子,无缝隙的排列在一条直线上,这一点很重要
要记住的是数组下标当从零开始的时候,最后一个数N-1
数组时有效存储相关联数据的储物柜
从盒子到抽屉到储物箱吗
二维数组类似宾馆的房间
三维数组 他们有了纵向,横向,立体
在计算机世界中,字符串表现为“字符的连续排列”
字符串时字符型数组中的元素中存储字符的状态
字符和字符编码
最后:》》保存循环次数的变量名称 i j k
》》使用数组下标的变量名称 index idx
》》数数时使用的变量的名称 counter cnt count
》》字符串处理中的变量的名称 string str
第三章 数据结构
数据有啥结构,数据不是信息的表现形式吗,还有结构吗
算法中要输入大量数据并对这些数据进行处理,最终得到输出结果
而在这些数据的输入输出,调用和处理过程中
我们要保存各种各样的数据并有效地管理数据
在本章中,让我们一起学习“大量数据的保存,管理的方式”,也就是”数据结构“
数据结构是为了实现大量的数据䣌有效管理的机制,根据邮政编码的住址管理以及根据座位编号的学生管理数据结构
邮政编码是典型的数据结构:说白就是地址嘛,我如何通过信息快速找到你 所以如何实现对大量数据进行高效管理就是数据结构
主要的数据结构有“数组”,“链表”,“栈”,“队列”和“树”
1.连续排列数据的数据结构叫做数组
2.数据按照顺序排列的数据结构叫做链表(数据可以不连续存放,用箭头链接管理节点的数据结构)
“链表”利用指针链接不连续的数据并管理这些数据的顺序,当“没有指向下一个数据的指针”时表示到达链表的尾部
单向链表:从一端开始可以遍历所有数据
在链表中从前向后和从后向前两个方向都有链,并将有数据的数据连接起来叫双向链表
插入和删除数据时链表比较快,数组比较慢
3.类似于在桌子上推书一样来管理数据的数据结构是栈
数据输入操作叫做posh,输出操作叫做pop
栈的数据管理方法有LIFO(后进先出)和FILO(先进后出)
4.还有一个队列
管理方法FIFO,LILO
5.如同树枝分出两个,三个甚至多个树枝,树也是一种
二叉树:一个父结点两个子结点组成的结构
我们把没有父结点的结点称为“跟”,没有子结点的称为“叶”。从“根”开始到特定结点所经过的路径称为“深度”
堆:父结点的值不得比子结点的值大的二叉树
哈希表:数组和链表组合的一种数据结构
图:结点和边连接的形式 有向图,无向图,带权图。
图论:专门研究边的集合和点的集合构成的图的性质的学问
所以现在数组头元素的编号为0,
第四章 基本的算法
重点介绍循环调用数组操作的算法
另外也会一并讲解时间相关的算法,变量替换,求最大公约数等基本算法
求1~N的和
while value<N :
sum = sum+value
value += 1
变量数据结果 千万不要写死 要的是灵活
会算法的都是大佬 哈哈哈
我先留着吧,有空看视频,自己琢磨有点难