对数据结构和算法的简单理解总结

来源:互联网 发布:软件测试核心期刊 编辑:程序博客网 时间:2024/06/05 10:55

常用数据结构:数组,栈,堆,队列,链表,树,图,散列表等。

着重研究一下数组和链表,队列,栈

数组:聚合数据类型,相同类型有序的组织在一起的集合。

体现是顺序表结构:(1)优点:有序序列,可以通过下标快速查询。(2)缺点:当插入和删除数据时,往往需要移动大量数据。

链表:有一系列数据节点组成,每个节点包括数据域和引用地址(保存了引用下一个节点的存放地址)。

体现就是链表结构:(1)优点:和顺序表结构相反,由于它的节点之间不要求连续,所以插入和删除数据速度比较快。(2)缺点:链表有一个头节点,按照从第一个节点开始到最后一个节点结束。之间的节点可以是连续的,也可以是不连续的,不需要分配一块连续的存储空间,同时也带来了浪费存储空间,所以链表的查询速度慢。

链表分为:单向链表和双向链表(双向链表保存了2个引用地址,一个指向上一个节点,一个指向下一个节点)。

队列:只允许一端插入一端删除。

体现就是队列结构:分为顺序队列结构和链表队列结构。

队列有对头和队尾,可以单向添加和删除数据,也可以双向的添加和删除数据。

栈:后进先出的数据结构

常用的算法:
穷举算法,递归,递推,分治,概率
排序算法:基本排序和多路合并排序
基本排序:交换排序(冒泡排序,快速排序);选择排序(选择排序,堆排序);插入排序(插入排序,shell排序)
冒泡排序原理:每次比较大小,交换位置。
选择排序原理:每次选择队列中最小的数放在左边。
插入排序原理:通过比较和插入来排序(先比较前2个由小到大然后把第3个插入到合适的位置)。
快速排序原理:是对冒泡排序的改进,首先先设定一个分界值,通过分界值来把队列分成左右2部分。

原创粉丝点击