数据结构与算法总结

数据结构+算法=程序

总逻辑: 要解决某个问题—发明出某种算法—这种算法需要某种数据结构,所以发明出这种数据结构
要解决排序问题-想要用堆排序这种算法-堆排序算法需要堆这种数据结构来存储数据

数据的四层结构

数据结构的层次结构(四层): 数据类型-存储结构-基本逻辑结构-功能逻辑结构(用于具体实现功能)
1.基本数据类型(存什么):整型,浮点型,字符串…
2.存储结构(存在哪):连续内存条(连续存储), 不连续内存条(链接存储)
3.基本逻辑结构(怎么存):线性(数组,链表),树,图,哈希表
四种基本逻辑结构 具体表达就是: 创建结构体进行逻辑实现
4.功能逻辑结构(做什么):根据需要的功能来增强数据结构的功能
在数组链表基础上实现:栈,队列
二叉树用于查找(算法),就变成查找二叉树,再优化就变成平衡二叉搜索树(AVL)
在完全二叉树的基础上实现堆

声明:
数组已经在 连续内存条的存储结构 上加了一层 线性逻辑结构,逻辑结构是连续的索引,让其存储单元变为连续有序的
链表的逻辑结构是指针

数据结构基本操作:

遍历(核心基本操作),创建(即插入+遍历),插入,删除
二叉树:前中后序遍历
图: 深度优先广度优先遍历

算法

算法层次/学习方法
1.算法基本思想:看一遍动画演示,自己手动画图过一遍即可掌握
2.具体编程机制: 基本思想与具体编码实现的过渡
3.具体编码实现: 考验编程语言的能力,把思想转化为具体语言的代码,也是最难的一步

编程机制/具体编码例子(快排)
1.引入三个变量:pivot中心轴,left左下标,right右下标
2.left从左向右获取值,并与pivot比较:若left大于pivot,则该值放到整个序列右边,开始移动right下标
若left小于pivot,该值不动,继续移动left下标
3.当left下标=right下标时,将pivot放到该位置
4.递进下一子序列
(2.3写为函数QuickSort)
在这里插入图片描述

现今所选算法类型
四种基本排序算法(每种都有一个高级扩展)
四种基本搜索算法 (每种都有几个高级扩展)
各个数据结构的访问/遍历
图论相关的几个算法:最小生成树,最短路径算法…

最终形态是十种排序算法,十种搜索算法

-排序算法
交换排序
插入排序
选择排序
归并排序

-查找算法: 四种基本查找算法及其扩展
顺序查找(分块查找)
二分查找(插值查找,斐波那契查找)
二叉搜索树查找(平衡查找树-红黑树-B树)
哈希查找

-最短路径算法: 即dijkstra算法(依托于广度优先遍历算法,所以依托于图这种数据结构)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值