数据结构与算法day01-为什么要学数据结构与算法

/**
		 * 有一个字符串str1="硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好"
			和一个子串str2="你尚硅你"
		 * 现在要判断str1是否包含含有str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1
		 * 要求用最快的速度来完成匹配--> 使用KMP算法
		 * 
		 * 汉诺塔使用分治算法
		 * 
		 * 八皇后使用回溯算法
		 * 
		 * 马踏棋盘使用(图的深度优化遍历算法)DFS+贪心算法优化效率
		 */
	
	/**
	 * 算法是程序的灵魂,优秀的程序员可以在海量数据计算的时候,依然保持高速计算
	 * 
	 * 一般来讲 程序会使用了内存计算框架(如Spark)和缓存技术(比如Redis)来优化程序,在深入的思考一下,
	 * 这些计算框架的和缓存技术,他的核心功能时哪个部分
	 * 
	 * 码农不会算法,程序工程师精通算法
	 * 
	 * 课程方式:应用场景--> 数据结构和算法--> 剖析原理--> 分析实现步骤--> 代码实现
	 * 课程目标--> 让大家掌握本质,到达工作中灵活运用解决实际问题和优化程序的目的
	 */
	
	/**
	 * 数据结构和算法的关系
	 * 数据结构是算法的基础,要想学好算法,需要把数据结构学到位
	 * 程序 = 数据结构 + 算法
	 * 要学好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决
	 * 数据结构是一门研究组织数据方式的学科,学好数据结构,可以编写出更加漂亮,更加有效率的代码
	 */
	
	/**
	 * 利用数据结构解决实际问题(相对简单的问题):
	 * 	字符串替换问题--> 单链表
	 * 	约瑟夫问题(丢手帕问题)--> 单向环形链表
	 * 	五子棋程序--> 二维数组+稀疏数组
	 * 利用算法解决实际问题(相对复杂的问题):
	 * 	修路问题--> 最小生成树(加权值)【数据结构】+ (普利姆算法)
	 * 	最短路径问题--> 【图】+ 佛洛依德算法
	 * 	汉诺塔问题--> 分治算法
	 *	八皇后问题--> 回溯算法
	 */
	
	/**
	 * 数据结构包含的内容:线性结构和非线性结构
	 *	线性结构:
	 *		1.作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系
	 *		2.线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储结构的
	 *		被称作顺序表,顺序表中的元素是连续的
	 *		3.链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的
	 *		地址信息
	 *		4.线性结构常见的有:数组、队列、链表和栈
	 *	非线性结构:
	 * 		5.二维数组,多维数组,广义表,树结构(用的多,且引申出的算法多),图结构(用的多,且引申出的算法多)
	 */
	
	/**
	 * 数据结构中的线性结构:稀疏数组(sparsearray)和队列
	 * 	
	 * 	 
	 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值