zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Qz学算法-数据结构篇(引入)

2023-03-14 22:45:32 时间

一.引入

1.经典算法面试题

  • 字符串匹配问题 1)有一个字符串 str1 = "世界你好 你好Java你好Java 你好数据结构菜鸟",和一个子串 str2 = "你好Java" 2)现在要判断str1是否含有str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1 3)要求用最快的速度来完成匹配 4)你的思路是?
    • 暴力匹配
    • KMP算法<<部分匹配表>>
  • 汉诺塔
    • 分治算法
  • 八皇后
    • 回溯问题
  • 马踏棋盘
    • 图的深度优化遍历算法(DFS)+贪心算法优化

2.数据结构和算法的重要性

  • 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算
  • 一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术,它的核心功能是哪个部分呢?
  • 拿实际工作经历来说,在Unⅸ下开发服务器程序,功能是要支持上千万人同时在线,在上线前,做内测,一切OK可上线后,服务器就支撑不住了,公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,就是算法。
  • 目前程序员面试的门槛越来越高,很多一线IT公司,都会有数据结构和算法面试题(负责的告诉你,肯定有的)
  • 如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法

二.数据结构和算法的介绍

1.数据结构和算法的关系

  • 数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了
  • 数据结构学好数据结构可以编写出更加漂亮,更加有效率的代码。 要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决
  • 程序=数据结构+算法
  • 数据结构是算法的基础,换言之,想要学好算法,需要把数据结构学到位。

所以说,要想算法好,学好数据结构是很有必要的,这要求我们要多想,多思考,在下面的基本结构中会有博主的个人思考,如果有小伙伴看了觉得有所启发,还请来个三连