01趣味算法 ---- 走进算法

2023-11-01

14天阅读挑战赛

努力是为了不平庸~
算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算法的理解,同时吸收他人的奇思妙想,一起见证技术er的成长~

你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解创作,参考如下:

1、什么叫算法?

简而言之就是求解问题的步骤,对特定问题求解步骤的一种描述。算法是智慧的结晶,学习它是去感受计算机编程技术的魅力,在理解掌握它的同时,整个过程都是一种愉悦的心情感受,而非枯燥乏味的一门课程。

在生活中,算法是无处不在的,算法在生活中最典型的一个“代号”就是说明书和教程。像游戏里的新手教程一样。要打败这个boss级怪物,首先要躲过他释放的龙卷风和泡泡,然后使用特定的键位组合释放技能击杀boss。像在刚开始接触王者荣耀的时候,你还是一个萌新,跟着ai进行基本的操作,怎么买装备,怎么操作,对应的技能对应什么伤害等等,第一个英雄就是亚瑟,装备界面又有详细介绍,什么物抗魔抗等等。其次就是去看一些主播的视频讲解操作,然后自己去练习。

汉诺塔算法的流程图如下:

2、数据结构和算法的关系?

数据结构+算法=程序

数据结构是程序的骨架,算法是程序的灵魂。

        打个比方,今天是你女友生日,你打算请女友去看爱情音乐剧,到了戏院,抬头一看----《梁山伯》19:00开演。嗯,怎么会是这样?一问才知,今天演祝英台的演员生病了,所以梁山伯唱独角戏。于是你们打算去看爱情电影,到了电影院,一看海报《罗密欧》,是不是名字写错了,问了才知,原来演朱丽叶的演员因为嫌弃费用太低,中途退出演了。制片方考虑到已经开拍,于是就把电影名字定为《罗密欧》,主要将男主的心路历程。

3、算法的特性

  • 有穷性:算法是由若干条指令组成的有穷序列,总是执行若干次后结束,不可能永不停止。
  • 确定性:每条语句都有确定的含义,无歧义。
  • 可行性:算法在当前环境条件下可以通过有限次运算来实现。
  • 输入/输出:有零个或多个输入以及一个或多个输出。

4、算法设计的要求

  • 正确性:算法的正确性是指算法至少 应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求,能够得到问题的正确答案。
  • 可读性:算法设计的另一目的是为了便于阅读、理解和交流.
  • 健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
  • 时间效率高和存储量底:时间效率指的是算法的执行时间。对于同一个问题,如果有多个算法能够解决,执行时间短的算法效率高,执行时间长的效率低。存储量需求指的是算法在执行过程中需要的最大存储空间,主要指算法程序运行时所占用的内存或外部硬盘存储空间。即用最短的时间,办最大的事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

01趣味算法 ---- 走进算法 的相关文章

  • 线性表的顺序存储实现(数组)

    数据对象集 线性表是个元素构成的有序序列 操作集 线性表 整数i表示位置 元素 线性表主要操作如下 List MakeEmpty 初始化一个空线性表 ElementType FinKth int K List PtrL 根据位序K 返回相应
  • matlab迭代算法实例_【优化求解】基于NSGA2的求解多目标柔性车间调度算法

    柔性作业车间调度问题 FJSP 是经典作业车间调度问题的重要扩展 其中每个操作可以在多台机器上处理 反之亦然 结合实际生产过程中加工时间 机器负载 运行成本等情况 建立了多目标调度模型 针对NSGA2算法收敛性不足的缺陷 引入免疫平衡原理改
  • 比特位计数

    题目链接 比特位计数 题目描述 注意点 对于 0 lt i lt n 中的每个 i 计算其二进制表示中 1 的个数 解答思路 采用动态规划的思想 任意一个数字的1的个数可以由前面数字1的个数推出 除2的n次方的数字外 所以任意一个数字有两种

随机推荐