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

简介: 数据结构引入

一.引入

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

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

目录
相关文章
|
6天前
|
算法
数据结构中的KMP算法及其改进算法
KMP算法通过引入部分匹配表,有效避免了重复计算,从而将字符串匹配的时间复杂度降低到O(m+n)。通过进一步优化next数组,KMP算法的效率得到了进一步提升。对于大规模字符串匹配问题,KMP算法及其改进算法提供了高效的解决方案,是计算机科学领域的经典算法之一。
13 3
|
1天前
|
存储 算法 搜索推荐
数据结构中的常用算法
数据结构中的常用算法
|
1天前
|
搜索推荐 算法
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
|
1天前
|
存储 算法
【二叉树】数据结构——BST二叉树基本概念及算法设计(插入、删除、遍历操作)
【二叉树】数据结构——BST二叉树基本概念及算法设计(插入、删除、遍历操作)
|
12天前
|
存储 算法
数据结构和算法——散列表的性能分析(开放地址法的查找性能、期望探测次数与装填因子的关系、分离链接法的查找性能)
数据结构和算法——散列表的性能分析(开放地址法的查找性能、期望探测次数与装填因子的关系、分离链接法的查找性能)
16 0
|
12天前
|
存储 算法 NoSQL
数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)
数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)
14 1
|
12天前
|
算法
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
8 0
|
12天前
|
存储 算法
数据结构和算法——了解哈希表(哈希查找、散列的基本思想)
数据结构和算法——了解哈希表(哈希查找、散列的基本思想)
12 0
|
12天前
|
搜索推荐 算法 Shell
数据结构和算法——排序算法的比较和排序综测测验
数据结构和算法——排序算法的比较和排序综测测验
7 0
|
12天前
|
算法 C语言
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
数据结构和算法——桶排序和基数排序(图示、伪代码、多关键字排序,基数排序代码)
9 0

热门文章

最新文章