找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 269523|回复: 0

2021年,你想成为优秀程序员吗?那你会这些数据结构算法吗 ...

[复制链接]

该用户从未签到

发表于 2021-1-9 12:43:34 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您今年的计划是什么?(成为一名程序员)
当然,如果您是一名程序员,那么今年您还将编写代码,构建项目,并且将解决很多编码问题。
让我们谈谈数据结构和算法,这是计算机科学的心和程序员在编码世界中的呼吸。

                               
登录/注册后可看大图


许多初学者通过学习计算机科学的这个重要工具来开始学习编程。您可能已经练习了很多,但是是否曾经尝试过了解这些算法在实际应用中的帮助。当然有一些学习它们的理由。大多数新手程序员都是为了工作而学习它的,但是如果我们了解现实世界中这些算法的实际实现,这也许并不有趣。
1.斐波那契数列

当然,您可能一生都经历过实施斐波那契数列的程序。作为学生,您可能会要求实施Fibonacci系列课程,或者在XYZ公司的面试过程中可能会问这个问题。
其中我们应用数学公式a n = a n -2 + a n -1来获得程序中的系列。我们实现代码以将序列0、1、1、2、3、5、8、13和21设为无穷大。在本系列中,我们通过添加连续的系列获得第二高的数字。
您编写程序,面对考试或面对面试,但是是否曾经尝试探索该系列在实际应用中的使用位置?

                               
登录/注册后可看大图


2.回文算法

这是程序员中另一种流行的算法。回文数或字符串的读取顺序相反。在许多公司中,实施此算法也是面试过程中的常见问题。
您在执行回文数程序时会测试您的逻辑能力,但是您能考虑一下这种著名算法的实际情况吗?在哪里可以使用?
回文用于DNA序列处理。但是如何在处理中使用它?
许多DNA序列变得可用。为了存储有关这些DNA序列的信息,我们使用分子生物学数据库。这些数据库的容量将来会更大,因此在数据库中进行有效的通信和存储数据非常重要。
重要的是压缩这些DNA序列以获得更好的性能。为了压缩这些序列,可以使用CTW(上下文树加权方法)。此方法将每个符号的DNA序列压缩少于2位。
DNA序列的两个特征结构主要是已知的。一种是回文或逆向称赞,另一种是近似重复。使用散列和动态编程,该算法在对下一个符号进行编码之前,先搜索近似重复和回文。如果找到具有足够长度的回文或近似重复,则算法用长度和距离表示它。

                               
登录/注册后可看大图


3.数组

在编程中学习的第一个数据结构。
在许多应用程序中最常用和使用最广泛的数据结构。
每个初学者的编程旅程都始于解决Array的问题。作为程序员,您肯定会在您的应用程序中大量使用此数据结构。需要在一个地方收集对象的所有可能情况下都会使用此数据结构。从简单到复杂的软件或Web应用程序,大多数用于在Web页面上动态存储和显示数据的阵列。让我们举一个在实际应用程序中使用数组的好例子之一:
我们所有人都必须至少使用一次在线票务预订系统。它可能用于预订火车票,也可能用于预订公共汽车,飞机或电影或任何其他节目的票。如果我们要预订任何座位,那么只需单击一个正方形即可预订。
您是否曾经想过,您在任何系统上在线预订的座位都是二维阵列?

                               
登录/注册后可看大图


4.堆栈

作为一个初学者,您肯定已经阅读了有关堆栈数据结构的常见示例。在橱柜中的一堆盘子或书本,但是您能想到除此基本示例之外的另一个堆栈示例吗?
是否有任何内置现实世界的应用和工程上的概念,一个堆栈数据结构?
一个文本编辑器如记事本或Microsoft Word使用堆栈的数据结构来完成撤消他们的编辑任务。堆栈的另一个很好的例子是浏览器可以在笔记本电脑或系统中运行。
每当您在文本编辑器中执行活动时,都会创建一个堆栈。使用push操作可以存储操作,操作的元数据(如操作类型,操作的性质,数据等)。使用pop操作可以执行撤消操作和最后一个操作(存储在堆栈顶部)从堆栈中删除或撤消。
堆栈数据结构的另一个很好的例子是浏览器在笔记本电脑或系统上的工作。假设您要访问www.google.com,然后访问www.baidu.com。之后,您访问www.youku.com。使用推送操作将该信息存储在堆栈数据结构中。当您在浏览器中单击后退按钮时,您将转到上一页,即在堆栈中执行的弹出操作。
因此,如果您位于www.yyouku.com页面上,并且按了“后退”按钮,那么您将访问前一页www.baidu.com。再次按返回按钮将执行弹出操作,您将返回到www.google.com页面。

                               
登录/注册后可看大图


5.链表

程序员中另一个流行的通用数据结构是链表。现在考虑一下此数据结构在实际应用程序中的用途。
我们所有人的手机上都有音乐播放器,并且上面有歌曲。假设您的清单上有5-6首歌曲。当您为这些歌曲创建播放列表时,它将在链接列表的概念上起作用。这些歌曲一一播放,这是单链接列表的最佳示例之一。歌曲已连接,您可以从第三首歌转到第四首歌,但不能返回(单链列表的行为)。
当您实现双向播放歌曲的功能时,它将遵循双向链接列表的行为。在双向链表中,节点双向连接。因此,在播放列表中,您可以从歌曲3移至歌曲4,也可以从歌曲3移至歌曲2。您将具有上一个和下一个按钮。因此双向导航是可能的。
当您以重复模式播放歌曲时,它遵循循环链接列表的行为。在循环链表中,最后一个节点与第一个节点连接。因此,一旦最后一首歌曲完成,第一首歌曲将再次播放,并且将以循环模式播放,并且永不停止。
领取学习资料及教程查看下方图片

                               
登录/注册后可看大图
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-22 22:58

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表