综述数据结构和算法
数据结构和算发的作用:
数据结构是对在计算机内存中(又时在磁盘中)的数据的一种安排,数据结构包括数组,栈,二叉树,哈希表等等。苏算法是对这些结构的数据进行各种处理,如查找一条特殊的数据项或对数据进行排序。
数据结构的特性:
数据结构 | 优点 | 缺点 |
数组 | 插入快,如果知道下标,可以非常快的存储 | 查找慢。删除慢,大小固定 |
有序数组 | 比无序数组查找快 | 删除和插入慢,大小固定 |
栈 | 提供了后进先出的存储方式 | 存取其他项很慢 |
队列 | 提供先进先出的存储方式 | 存取其他项很慢 |
链表 | 插入快,删除快 | 查找慢 |
二叉树 | 查找,插入,删除都快 | 删除算法复杂 |
红-黑树 | 查找,插入,删除都快。数总数平衡的 | 算法复杂 |
2-3-4树 | 插入,查找,删除都快,树总是平衡的,类似的树对磁盘存储有用 | 算法复杂 |
哈希表 | 如果关键字已知则存取快,插入快 | 删除慢,如果果不知道关键字则存取很慢,对存储空空使用不充分,对其他数据项存取慢 |
堆 | 插入,删除快,对最大数据项的存取很快,堆现实时间建模 | 有些算法慢且复杂 |
认知点:
1. 数据结构是指数据在计算机内存空间或者磁盘中的组织形式。
2. 正确的选择数据结构会使程序的效率大大提高
3.算法使完成特定任务的过程
4.在java中,算法经常通过类的方法实现
大O表示法:
表示算法的运行时间速度等。 N时表示数据项的总数 O你的操作所话费的时间,比如插入O(1)
越靠近x轴的越说明执行效率越快。反之则越慢。
高级排序:希尔排序,划分,快速排序,基数排序 https://blog.csdn.net/meiLin_Ya/article/details/80821126