算法入门!!!

简介: 算法入门!!!

自述:我是一名大专生,从2019年10月开始接触前端,到现在2021年2月, 之前都是浑浑噩噩的,人生真的会有那么一些人,会改变你对人生的规划,纠正自己人生旅途!!!废话不多说,开始入门讲解,如有错误之处请纠正!!!


算法是什么?

遇到一条河,你想到河对面去,有哪些方法?
1.游过去
2.做船过去
3.从桥上走过去
这就可以理解为算法。

算法是解决问题,实现目标的方法,目标不同,算法自然不同。思考算法,指挥计算机去做,就是编程。每当我们想做一件事情的时候,我们都会思考该怎么做,方法即算法。算法是帮我们提升写代码的效率以及找到最快解决技术难题的根本所在。

算法要解决的是什么?

算法要解决的是:按照什么顺序,做什么事情才能让效率更高。有了明确目标后,大家会先思考算法,在采取行动,但是计算机只能按照指令运行,所以我们只能必须先想好各种算法,组合给程序,这就形成了编程。

有一群小鸡,需要你去数出来多少只,怎么数更快?
第一种:放置格子,每个格子有十个。
第二种:称重全部小鸡,在拿出一只称重,用全部的除以一只的重量。

算法中的检索和排序

把大量东西按照一定规则排列的叫做排序,从中找出所需要的部分叫检索。

从大量数据中找到想要的目标,就是检索,寻找的方法叫做检索算法,如果数据预先经过排序,就能很快的

找到目标.

如果一开始想的算法效果不好,就要想想其他算法了。

比较大小,进行交换,就可以按照顺序排列,把东西按照一定的规则顺序排列,就是排序,排序算法有很多,最
 常见的就是冒泡排序和选择排序。
 //冒泡排序解释
 比较相邻的数字,小的或者大的在前,从后向前交换顺序。这种交换顺序的方式就像是气泡从水底逐渐浮上来一样
 所以叫做冒泡排序。
 //选择排序解释
 用最大或最小的数与最前面的数交换,从前往后决定顺序。
// 冒泡和排序算法的性能
 冒泡和排序算法那个更快,这个要根据业务需求而定,要选择排序交换次数更少的。
 //选择排序
 从小到大进行排序,首先找到最小的,然后和第一个数交换位置,这叫做选择排序,通过选择某个值进行排列。
 //插入排序
 把每个数都取出来,然后按照大小顺序排好,这叫做插入排序。
 //二分检索
 (这种方法一般用在数据已经按照一定顺序排列好的情况下,我们代码排错也可以使用这种方法)
 反复将数据分为两部分,逐渐缩小检索的范围,在已经排列好顺序的数据中,与正中的位置的数据进行比较,
 看我们所要找的目标是在其前面还是在后面,把不包含我们目标的前面或后面去掉,重复以上步骤.
 //线性检索
 (这种方法一般在数据没有按照一定顺序排列好的情况下使用,虽然很简单,但是很浪费时间)
 从第一个数据开始查找,一个一个往下找,直到找到目标.

其实算法我们在生活中乃至工作中都经常用到,比如我们要去图书馆找书,图书馆里的图书都是从A到Z顺序排列,首先找到我们需要的书得类别,在看书脊标签上的索书号,例如我们要找A类别的书,A是一级分类,A2,A3,A4这些都是二级分类,在相同类别的书架上查看中间一带的标签,看所要找的书的索书号在其前面还是后面,重复上面的步骤逐渐缩小范围就能找到自己想要的书.这是检索算法.

查找扑克牌(运用检索算法)
从正面朝下的七张扑克牌中找出指定的一张牌.
把七张牌的任意一张翻出来,正面朝上给大家看他的图案和数字.
扑克牌中有A-K,共十三种,图案共有4种,分别是红心,方块,黑桃,梅花.
扑克牌中,A=1,J=11,Q=12,K13,每副牌中除了数字牌还有俩张小丑牌.
如果有数字相同,图案不同的牌,那么随便把那张牌放前面都可以,如果七张牌中有小丑牌,则可以放任意位置.
怎么样才能快速找到我们刚才那一张,并且翻牌次数最少.
解题:按照数字从小到大的顺序,把七张牌从右向左依次排开,从我们的角度看,从左到右,牌的数字越大,
如果我们要找的牌是A,那么用线性检索从左边找起要比用二分检索从中间找快.

数据结构

计算机需要处理大量的数据,所以在执行算法时,将数据按照一定的规则进行整理十分重要。整理大量数据的方法,成为数据结构,类似于学校里的年纪,班级,学号设置就是一种数据结构,如果事先没有进行任何分组,从学校所有学生找出其中一个是十分令人头疼的。

数据结构:数据结构是整理大量数据的方法,在编写程序时,有时会根据数据结构来选择使用的算法,有时也会为了
使用某种算法而采用特定的数据结构。
排序算法:排序算法是将大量数据按照特定顺序进行排列的方法,包括冒泡排序,选择排序,插入排序等。
检索算法:检索算法是从大量数据中找出目标数据的方法,包括二分检索,线性检索等。

算法的基本结构

算法有三种基本结构:顺序结构,条件结构,循环结构。

当我们把要做的事情写在文字框里,就产生了相应的指令框,用线条和箭头把指令框链接起来,就组成了流程图,所
有算法都可以用流程图进行表示,只要依照同一幅流程图,就能执行相同的算法。
可以使用流程图查看算法基本结构的特点!
//顺序结构
这是算法最基本,最常见的结构,它表示按排列好的顺序逐一执行指令。
                  种幼苗
                   ||
                  浇水
                  ||
                 收获
 //条件结构
 表示根据条件来决定是否执行。通常会有俩个执行内容,必须选择其中一个执行。
           有无虫子
            ||    有虫子
            ||================
          无 ||        ||
          虫 ||        打药
          子 ||        ||
            ||==============||
            ||
 //循环结构
 确定好重复执行的内容,只要未满足判断条件,就一直重复执行。
            ||
            ||===============================
            ||                ||
            ||                ||
            ||                ||
           土干了吗             ||
            ||    是           ||
            ||================        ||
            ||        ||        ||
          否 ||        浇水      ||
            ||        ||        ||
            ||==============||        ||
            ||                ||
          有虫子吗                ||
            ||    有虫子         ||
            ||================        ||
          无 ||        ||        ||
          虫 ||        打药      ||
          子 ||        ||        ||
            ||==============||        ||
            ||                ||
          果实熟了              ||
            ||        没有      ||
            ||==============================
          熟  ||       
          了  ||       
            采摘
 //没熟就继续重复这个步骤,机器操作就是以流程图的方式植入主板,让机器进行执行

算法的三步骤

算法分为三个步骤,第一个准确的传达自己的想法,第二思考算法,使用什么算法能够快速实现自己的目标,第三步创建算法。

算法题1:有三个盘子,红,白,蓝盘子,五层蛋糕在红盘子里,如何用最少的移动次数把蛋糕移动蓝盘子中,白盘子可以
用于中转;
算法题2:A,B,C三人外出游玩遇到一条大河,河边有一艘小船,可是这艘船无法同时装下三个人,想要三个人坐船到
对岸有几种方法?
前提条件:
小船:一次最多坐二人,且重量不能超过60公斤,船必须靠人从对岸才能划过来.
A的体重40公斤,B的体重30公斤,C的体重25公斤.
算法题3:人带着狼和羊,还有一颗白菜,想坐一艘船过河,能划船的只有人,除了人之外只能带一样东西上船,如果留下
羊和白菜,羊会吃掉白菜,如果留下狼和羊,狼会吃掉羊.
相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
2月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
2月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
2月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
|
4月前
|
机器学习/深度学习 人工智能 算法
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
本文全面介绍了人工智能(AI)的基础知识、操作教程、算法实现及其在实际项目中的应用。首先,从AI的概念出发,解释了AI如何使机器具备学习、思考、决策和交流的能力,并列举了日常生活中的常见应用场景,如手机助手、推荐系统、自动驾驶等。接着,详细介绍了AI在提高效率、增强用户体验、促进技术创新和解决复杂问题等方面的显著作用,同时展望了AI的未来发展趋势,包括自我学习能力的提升、人机协作的增强、伦理法规的完善以及行业垂直化应用的拓展等...
189 3
AI入门必读:Java实现常见AI算法及实际应用,有两下子!
|
5月前
|
机器学习/深度学习 数据采集 人工智能
机器学习算法入门与实践
【7月更文挑战第22天】机器学习算法入门与实践是一个既充满挑战又极具吸引力的过程。通过掌握基础知识、理解常见算法、注重数据预处理和模型选择、持续学习新技术和参与实践项目,你可以逐步提高自己的机器学习技能,并在实际应用中取得优异的成绩。记住,机器学习是一个不断迭代和改进的过程,保持好奇心和耐心,你将在这个领域走得更远。
|
5月前
|
消息中间件 存储 算法
实战算法的基础入门(2)
实战算法的基础入门
|
5月前
|
算法 大数据
实战算法的基础入门(1)
实战算法的基础入门
|
5月前
|
算法 Java
实战算法的基础入门(3)
实战算法的基础入门