死磕-算法(一)

简介: 死磕-算法(一)

一、为什么我要写算法呢?

1、我认为算法与数据结构是写好程序的一门很重要的技术点,当你真正了解一个程序的逻辑,但是如何去优化你的代码可能与算法也是有关系的,在我的理解当中是这样的。

2、因为我3月份到4月份一直在面试各种大厂,包括,阿里,腾讯,百度,携程的一些大厂,还有一些独角兽公司,都涉及到了算法,因为算法一点没有准备,被PASS了,所以系统学习下算法,然后刷题,为大厂做准备。

二、算法与程序的区别

1、算法就是计算或者解决问题的步骤,我们可以把它想象成食谱,要想做出好吃的食品,就要遵循食谱上面的步骤,同理,要想用计算机解决特定的问题,就要遵循算法。

2、食谱和算法的区别在于算法是严密的。食谱只是会有描述不清楚模糊的部分,而算法都是用数学方式来描述的,很明确。

3、算法和程序很相似,但是程序是以计算机能够理解的编程语言来编写的,可以在计算机上运行。而算法是以人类能够理解的方式描述的,用于在编写程序之前。

4、但是从哪里到哪里为主是算法, 从哪里开始是程序,并没有明确的界限。

5、就算使用同一个算法,编程语言不同,写出来的程序也不同;即使使用相同的编程语言,写程序的人不同,那么写出来的程序也会不同的。

三、排列整数的算法:排序

1)、查找最小的数字并排序:选择排序

上面的是一个以随意排列的整数的输入,把它们从小到大重新排列的问题。上面的这个虽然输入的整数的个数n为8,但是算法是不管n多大,算法都会将问题解决。

2)、首先想到的办法是:先从输入的数字中找出最小的数字,再将它和最左边的数字交换位置呢?然后会将它和最左边的7交换位置:

3)、这之后1的位置确定下来之后,不再移动,接下来。在剩下的数字里继续寻找最小的数字,再将它和左边的第二个数字交换位置。于是,4和13也就交换了位置。

4)、我们可以将这样的一次交换称为“1轮”,到了第N轮的时候,就把剩下的数字中最小的一个,与左边开始第N个数字进行交换。于是在结束第N轮后,从左数的第N个数字便都是按照从小到大的顺序排列了。

5)、只要重新n多次,那么所有的数字都将会按照从小到大的顺序排列。

这里只是举个例子。后续会给介绍选择排序的算法来解答这道题。

四、用计算机能理解的方式构思解法:算法的设计

1、用计算机擅长高速执行的一些基本命令,但是无法执行复杂的命令。

2、基本命令:做加法或者在指定的内存地址上保存数据等。

3、计算机是以这些基本命令的组合为基础运行的。面对复杂的操作,也是通过搭配组合这些基本命令来应对的。

4、上面的算法的题也是如何搭配组合计算机可以执行的那些基本命令来实现这个操作。

五、如何选择算法

1、能解决的排序问题的算法不止这一个,那么,当有多个算法都可以解决同一个问题的时候,我们该如何去选择?在算法的评估上,考量的标准也各有不同。

2、比如,简单的算法对人类来说易于理解,也容易被写成程序,而在运行过程中不需要耗费太多空间资源的算法,就十分适用于内存小的计算机。

3、不过,一般来说我们最为重视的是算法的运行时间,即从输入数据到输出结果的这个过程所耗费的时间。

好吧,今天就到这了,明天见~~

相关文章
|
PyTorch 算法框架/工具
Pytorch学习笔记(六):view()和nn.Linear()函数详解
这篇博客文章详细介绍了PyTorch中的`view()`和`nn.Linear()`函数,包括它们的语法格式、参数解释和具体代码示例。`view()`函数用于调整张量的形状,而`nn.Linear()`则作为全连接层,用于固定输出通道数。
909 0
Pytorch学习笔记(六):view()和nn.Linear()函数详解
|
5天前
|
云安全 监控 安全
|
2天前
|
存储 机器学习/深度学习 人工智能
打破硬件壁垒!煎饺App:强悍AI语音工具,为何是豆包AI手机平替?
直接上干货!3000 字以上长文,细节拉满,把核心功能、使用技巧和实测结论全给大家摆明白,读完你就知道这款 “安卓机通用 AI 语音工具"——煎饺App它为何能打破硬件壁垒?它接下来,咱们就深度拆解煎饺 App—— 先给大家扒清楚它的使用逻辑,附上“操作演示”和“🚀快速上手不踩坑 : 4 条核心操作干货(必看)”,跟着走零基础也能快速上手;后续再用真实实测数据,正面硬刚煎饺 App的语音助手口令效果——创建京东「牛奶自动下单神器」口令 ,从修改口令、识别准确率到场景实用性,逐一测试不掺水,最后,再和豆包 AI 手机语音助手的普通版——豆包App对比测试下,简单地谈谈煎饺App的能力边界在哪?
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1180 7
|
1天前
|
人工智能
自动化读取内容,不会写爆款的普通人也能产出好内容,附coze工作流
陌晨分享AI内容二创工作流,通过采集爆款文案、清洗文本、智能改写,实现高效批量生产。五步完成从选题到输出,助力内容创作者提升效率,适合多场景应用。
205 104
|
16天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1183 41
|
4天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
339 13
|
16天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
960 78
大厂CIO独家分享:AI如何重塑开发者未来十年