对数据结构和算法的简单理解总结
来源:互联网 发布:软件测试核心期刊 编辑:程序博客网 时间:2024/06/05 10:55
常用数据结构:数组,栈,堆,队列,链表,树,图,散列表等。
着重研究一下数组和链表,队列,栈
数组:聚合数据类型,相同类型有序的组织在一起的集合。
体现是顺序表结构:(1)优点:有序序列,可以通过下标快速查询。(2)缺点:当插入和删除数据时,往往需要移动大量数据。
链表:有一系列数据节点组成,每个节点包括数据域和引用地址(保存了引用下一个节点的存放地址)。
体现就是链表结构:(1)优点:和顺序表结构相反,由于它的节点之间不要求连续,所以插入和删除数据速度比较快。(2)缺点:链表有一个头节点,按照从第一个节点开始到最后一个节点结束。之间的节点可以是连续的,也可以是不连续的,不需要分配一块连续的存储空间,同时也带来了浪费存储空间,所以链表的查询速度慢。
链表分为:单向链表和双向链表(双向链表保存了2个引用地址,一个指向上一个节点,一个指向下一个节点)。
队列:只允许一端插入一端删除。
体现就是队列结构:分为顺序队列结构和链表队列结构。
队列有对头和队尾,可以单向添加和删除数据,也可以双向的添加和删除数据。
栈:后进先出的数据结构
常用的算法:
穷举算法,递归,递推,分治,概率
排序算法:基本排序和多路合并排序
基本排序:交换排序(冒泡排序,快速排序);选择排序(选择排序,堆排序);插入排序(插入排序,shell排序)
冒泡排序原理:每次比较大小,交换位置。
选择排序原理:每次选择队列中最小的数放在左边。
插入排序原理:通过比较和插入来排序(先比较前2个由小到大然后把第3个插入到合适的位置)。
快速排序原理:是对冒泡排序的改进,首先先设定一个分界值,通过分界值来把队列分成左右2部分。
阅读全文
0 0
- 对数据结构和算法的简单理解总结
- 个人对数据结构的理解和总结
- 数据结构和算法的简单理解
- 对数据结构和算法的总结和思考(二)--简单排序算法
- 对动态规划算法的简单理解
- 对数据结构和算法的总结和思考(一)--概览
- 对数据结构和算法的总结和思考(三)--希尔排序
- 对数据结构和算法的总结和思考(四)--快速排序
- 对数据结构和算法的总结和思考(五)--堆排序
- 对数据结构和算法的总结和思考(六)--计数排序
- 对数据结构和算法的总结和思考(七)--二分查找
- 自己对java数据结构跟算法的一点理解把
- 对普利姆算法的理解(大话数据结构)。
- 数据结构初学过程中对算法效率度量的理解
- 数据结构的简单理解
- 对进程和线程的简单理解
- 对inverse和cascade的简单理解
- 对算法的一些学习和理解
- java中的private public protected
- SSH:Action中Service无法实例化
- TensorFlow 实现流行的机器学习算法的教程汇集
- [已解决]Ubuntu安装libssl-dev失败
- WIN10连接远程桌面(以阿里云服务器为例)
- 对数据结构和算法的简单理解总结
- Spark成长之路(1)-搭建环境
- Hadoop平台搭建-ubuntu下
- 多线程一定快吗
- Quartz分布式任务(二)
- 005. Spring 自动装配
- 每段时间Android开发10个知道(初级系列)-170622
- poj 3176 Cow Bowling
- 智能指正和强弱指针的实现