数据结构和算法总结

数据结构:数据与数据之间的关系;
算法:解决问题的方法步骤。

主要叙述了数据的存储、排序、遍历、查找。

一、数据的存储方法
线性表List:顺序表、单链表、循环链表、双链表;
栈Stack:先进后出,主要操作有pop和push;
队列Queue:先进先出;
串:主要是字符的操作,包括顺序存储和链式存储;
数组、特殊矩阵和广义表:这个主要针对特殊情况而设置的特殊存储方式;
树:二叉树存储;
图:图的存储:邻接矩阵、邻接表。

二、数据的遍历
二叉树遍历:
最优二叉树(哈夫曼树),主要是叶子结点包含权重,权重与叶子结点深度积的和最小为最优;
图的遍历:
深度优先搜索(DFS)和广度优先搜索(BFS),简而言之,DFS就是自上而下,然后再考虑左右。而BFS先考虑左右搜索,在从上而下。

三、数据查找
顺序查找:类似于数组;
二分查找:前提条件是需要排好序;
分块查找:数据分为多块,然后得知每一块数据大小范围,然后进行比对查找,速度快;
树状查找:二叉树和B-树,B-树查找就是相比于二叉树,有多个分支,而不仅是2个;
哈希法:哈希法首先需要定义一个哈希函数,然后构建哈希表。

四、几大排序算法
内排序(在内存中进行的排序):
冒泡排序;
选择排序;
直接插入排序;

堆排序;
快速排序;
归并排序;

外排序(在硬盘中进行的排序)。

五、常用的算法设计
算法好坏的评价标准:时间复杂度和空间复杂度。
算法的设计:
分治法:把大问题化为较小问题来解决;
贪心法:分阶段的选择最优方法来解决,但是并不一定是全局最优;
动态规划:用填表的方法保存计算中间结果,从而避免了大量重复计算。一般是递归法解决;
回溯法:明确问题的解空间,然后采用深度优先的方式搜索解空间树。应用回溯技巧可以大大减少实际的搜索数目;
分支界限法:在系统搜索问题的解空间时,加上上下界条件检查,从而达到有效剪枝的目的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值