美文网首页
认识数据结构和算法

认识数据结构和算法

作者: iDevOps | 来源:发表于2019-08-19 16:46 被阅读0次

程序 = 数据结构 + 算法

数据结构
  1. 数据结构是一门研究组织数据方式的学科, 学好数据结构可以编写出更漂亮、更有效率的代码
  2. 数据结构是算法的基础, 要想学好算法, 先学好数据结构
  3. 数据结构包括线性结构非线性结构
  • 线性数据结构
    1.数据元素之间存在一对一的线性关系
    2.线性结构有两种不同的存储结构, 顺序存储结构(数组、队列和栈)和链式存储结构(链表)
  • 非线性数据结构
    比如多维数组、广义表、树结构和图结构
算法
  1. 算法是程序的灵魂, 优秀的程序可以在海量数据计算时, 依然保持高速计算
  2. 现在面试门槛越来越高, 高级程序员必面
看几个经典的算法面试题
  • 字符串匹配问题
    有一个字符串s1 = "看几个经典的算法面试题"和一个子串s2 = "算法",现在判断s1是否包含s2, 包含就返回第一次出现的位置, 不包含就返回-1, 请使用最快的速度完成查找。
    大部分人首先想到的是暴力匹配,逐个去对比,这种方式虽然简单,但是效率极低。
    哪有没有什么好的算法呢? (提示: KMP算法)
  • 汉诺塔游戏
    将A塔的所有圆盘移动到C盘,要求小盘不能放到大盘上,一次只能移动一个盘子。


    汉诺塔游戏
  • 八皇后问题
    八皇后问题是一个古老而著名的问题,是回溯算法的经典案例。这个问题是由国际西洋棋棋手马克斯*贝瑟儿于1848年提出,在8乘8的国际象棋盘上摆放八个皇后,使其不能相互攻击(就是任意两个皇后不能在同一行、同一列或同一斜线上),问有多少种摆法? (提示: 分治算法)


    8皇后游戏
  • 马踏棋盘
    将马放在国际象棋8*8棋盘中的某个方格内,马走日进行移动,要求每个方格只能进一次,走遍棋盘64个方格。(提示: 会使用到图的深度优先遍历算法DFS + 贪心算法)


    马踏棋盘

上面的问题你都会了吗? 没的话就继续往下学习吧。

相关文章

网友评论

      本文标题:认识数据结构和算法

      本文链接:https://www.haomeiwen.com/subject/klwjsctx.html