最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。
常见的就是冒泡排序和选择排序。
//冒泡排序解释
比较相邻的数字,小的或者大的在前,从后向前交换顺序。这种交换顺序的方式就像是气泡从水底逐渐浮上来一样
所以叫做冒泡排序。
//选择排序解释
用最大或最小的数与最前面的数交换,从前往后决定顺序。
// 冒泡和排序算法的性能
冒泡和排序算法那个更快,这个要根据业务需求而定,要选择排序交换次数更少的。
//选择排序
从小到大进行排序,首先找到最小的,然后和第一个数交换位置,这叫做选择排序,通过选择某个值进行排列。
//插入排序
把每个数都取出来,然后按照大小顺序排好,这叫做插入排序。
//二分检索
(这种方法一般用在数据已经按照一定顺序排列好的情况下,我们代码排错也可以使用这种方法)
反复将数据分为两部分,逐渐缩小检索的范围,在已经排列好顺序的数据中,与正中的位置的数据进行比较,
看我们所要找的目标是在其前面还是在后面,把不包含我们目标的前面或后面去掉,重复以上步骤.
//线性检索
(这种方法一般在数据没有按照一定顺序排列好的情况下使用,虽然很简单,但是很浪费时间)
从第一个数据开始查找,一个一个往下找,直到找到目标.
其实算法我们在生活中乃至工作中都经常用到,比如我们要去图书馆找书,图书馆里的图书都是从A到Z顺序排列,首先找到我们需要的书得类别,在看书脊标签上的索书号,例如我们要找A类别的书,A是一级分类,A2,A3,A4这些都是二级分类,在相同类别的书架上查看中间一带的标签,看所要找的书的索书号在其前面还是后面,重复上面的步骤逐渐缩小范围就能找到自己想要的书.这是检索算法.
查找扑克牌(运用检索算法)
从正面朝下的七张扑克牌中找出指定的一张牌.
把七张牌的任意一张翻出来,正面朝上给大家看他的图案和数字.
扑克牌中有A-K,共十三种,图案共有4种,分别是红心,方块,黑桃,梅花.
扑克牌中,A=1,J=11,Q=12,K13,每副牌中除了数字牌还有俩张小丑牌.
如果有数字相同,图案不同的牌,那么随便把那张牌放前面都可以,如果七张牌中有小丑牌,则可以放任意位置.
怎么样才能快速找到我们刚才那一张,并且翻牌次数最少.
解题:按照数字从小到大的顺序,把七张牌从右向左依次排开,从我们的角度看,从左到右,牌的数字越大,
如果我们要找的牌是A,那么用线性检索从左边找起要比用二分检索从中间找快.
计算机需要处理大量的数据,所以在执行算法时,将数据按照一定的规则进行整理十分重要。整理大量数据的方法,成为数据结构,类似于学校里的年纪,班级,学号设置就是一种数据结构,如果事先没有进行任何分组,从学校所有学生找出其中一个是十分令人头疼的。
数据结构:数据结构是整理大量数据的方法,在编写程序时,有时会根据数据结构来选择使用的算法,有时也会为了
使用某种算法而采用特定的数据结构。
排序算法:排序算法是将大量数据按照特定顺序进行排列的方法,包括冒泡排序,选择排序,插入排序等。
检索算法:检索算法是从大量数据中找出目标数据的方法,包括二分检索,线性检索等。
算法有三种基本结构:顺序结构,条件结构,循环结构。
当我们把要做的事情写在文字框里,就产生了相应的指令框,用线条和箭头把指令框链接起来,就组成了流程图,所
有算法都可以用流程图进行表示,只要依照同一幅流程图,就能执行相同的算法。
可以使用流程图查看算法基本结构的特点!
//顺序结构
这是算法最基本,最常见的结构,它表示按排列好的顺序逐一执行指令。
种幼苗
||
浇水
||
收获
//条件结构
表示根据条件来决定是否执行。通常会有俩个执行内容,必须选择其中一个执行。
有无虫子
|| 有虫子
||================
无 || ||
虫 || 打药
子 || ||
||==============||
||
//循环结构
确定好重复执行的内容,只要未满足判断条件,就一直重复执行。
||
||===============================
|| ||
|| ||
|| ||
土干了吗 ||
|| 是 ||
||================ ||
|| || ||
否 || 浇水 ||
|| || ||
||==============|| ||
|| ||
有虫子吗 ||
|| 有虫子 ||
||================ ||
无 || || ||
虫 || 打药 ||
子 || || ||
||==============|| ||
|| ||
果实熟了 ||
|| 没有 ||
||==============================
熟 ||
了 ||
采摘
//没熟就继续重复这个步骤,机器操作就是以流程图的方式植入主板,让机器进行执行
算法分为三个步骤,第一个准确的传达自己的想法,第二思考算法,使用什么算法能够快速实现自己的目标,第三步创建算法。
算法题1:有三个盘子,红,白,蓝盘子,五层蛋糕在红盘子里,如何用最少的移动次数把蛋糕移动蓝盘子中,白盘子可以
用于中转;
最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】