java数据结构 第1章-内容框架介绍

1.1 数据结构和算法内容介绍

1.1.1 先看几个经典的算法面试题

1.字符串匹配问题::
  1. 有一个字符串str1= ““硅硅谷尚硅谷你尚硅尚硅谷你尚硅谷你尚硅你好””,和一个子串str2="尚硅谷你尚

硅你"

  1. 现在要判断str1 是否含有str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-1

  2. 要求用最快的速度来完成匹配

  3. 你的思路是什么?

暴力匹配[简单,但是效率低]

KMP 算法《部分匹配表》

2.汉诺塔游戏,

请完成汉诺塔游戏的代码: 要求:

  1. 将A 塔的所有圆盘移动到C 塔。并且规定,在
  2. 小圆盘上不能放大圆盘
  3. 在三根柱子之间一次只能移动一个圆盘

image.png

3. 八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于

1848 年提出:在8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、

同一列或同一斜线上,问有多少种摆法。【92】=> 分治算法

image.png

马踏棋盘算法介绍和游戏演示

  1. 马踏棋盘算法也被称为骑士周游问题

  2. 将马随机放在国际象棋的8×8 棋盘Board[0~7][0~7]的某个方格中,马按走棋规则(马走日字)进行移动。要求

每个方格只进入一次,走遍棋盘上全部64 个方格

  1. 游戏演示: http://www.4399.com/flash/146267_2.htm

  2. 会使用到图的深度优化遍历算法(DFS) + 贪心算法优化

image.png

1.1.2 数据结构和算法的重要性

  1. 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算

  2. 一般来讲程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis 等)来优化程序,再深入的思考一下,这

些计算框架和缓存技术, 它的核心功能是哪个部分呢?

  1. 拿实际工作经历来说, 在Unix 下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切

OK,可上线后,服务器就支撑不住了, 公司的CTO 对代码进行优化,再次上线,坚如磐石。你就能感受到程序

是有灵魂的,就是算法。

  1. 目前程序员面试的门槛越来越高,很多一线IT 公司(大厂),都会有数据结构和算法面试题(负责的告诉你,肯

定有的)

  1. 如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法

1.1.3 亮点

  1. 课程深入,非蜻蜓点水

  2. 课程成体系,非星星点灯

  3. 高效而愉快的学习, 数据结构和算法很有用,很好玩

  4. 数据结构和算法很重要,但是相对困难,我们努力做到通俗易懂

  5. 采用应用场景->数据结构或算法->剖析原理->分析实现步骤(图解)->代码实现的步骤讲解[比如: 八皇后问

题和动态规划算法]

1.1.4 学习笔记

java数据结构 第1章-内容框架介绍
java数据结构 第2章-数据结构和算法概述
java数据结构 第3章-稀疏数组和队列
java数据结构 第4章-链表(单链表)
java数据结构 第4章-链表(双向链表)
java数据结构 第5章–栈
java数据结构 第6章–递归
java数据结构 第7章–排序算法01
java数据结构 第7章–排序算法02-冒泡排序
java数据结构 第7章–排序算法03-选择排序
java数据结构 第7章–排序算法04-插入排序
java数据结构 第7章–排序算法05-希尔排序
java数据结构 第7章–排序算法06-快速排序
java数据结构 第7章–排序算法07-归并排序
java数据结构 第7章–排序算法08-基数排序
java数据结构 第7章–排序算法09-常用排序算法总结和对比!
持续更新

1.1.5 学习资料

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我,Zack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值