您的位置:首页 > 理论基础 > 数据结构算法

数据结构总结

2015-10-18 15:27 302 查看
    数据结构是计算机组织数据和存储数据的方式。更进一步的说,数据结构是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。合理的数据结构课降低程序设计的复杂性,提高程序执行的效率。

    从数据结构的定义可以看出,数据结构导论其实就分为两部分,结构和算法,其次就是对数据结构的操作,以及相应操作对应的算法分析:

                           



    

    数据操作部分分为五项,分别是建立、查找、读取、插入、删除。就拿数组来说,如果将数据存入数组中,首先创建一个数组,也就是建立;存入后需要查找某一元素,也就是查找操作;如果想获得该元素,也就是读取操作;另外我可能想把数组中的元素删除或者插入一个新元素,这就是插入和删除操作。

                                          


    存储共有四种形式,分别是顺序存储、链式存储、索引存储、散列存储。顺序存储就是顺序表;链式存储是链表,包括单链表、循环链表、双向循环链表;索引存储就是查找表中的索引顺序表;散列表就是哈希表,利用散列函数形成的存储形式,在散列表中,要注意散列函数的确定和避免冲突的问题。

                                           



    既然数据结构有相应的操作,对应的就有相应操作的算法。算法具有正确性、易读性、健壮性、时空性。判断算法的复杂度有两种方式,一种是时间复杂度,一种是空间复杂度。一般来说,空间复杂度容易变,所以经常用时间复杂度来评判算法。

                                     



    接下来就是最大的一块了,也是这本书最重要的部分,那就是结构。结构分为逻辑结构和存储结构,逻辑结构包括集合、线性结构、树形结构、图结构。对应的存储结构就包括数组、线性表、树和图,另外还有一个是查找表,查找表分为不同类型,不同类型所对应的逻辑结构也不同,可以说查找是一种特殊的存储结构。每一种存储结构都对应一种逻辑结构。

                                      


    这本书的最后一章是排序,排序属于数据处理中一种重要的很常用的运算,一般情况下,排序操作在数据处理过程中要花费许多时间,为了提高计算机的运行效率,需要选取合适的算法。

排序算法最好时间复杂度最坏时间复杂度平均时间复杂度辅助空间稳定性
直接插入O(n)O(n2)O(n2)O(1)稳定
简单选择O(n2)O(n2)
O(n2)
O(1)
不稳定
冒泡排序O(n)
O(n2)
O(n2)
O(1)
稳定
快速排序O(nlogn)O(nlogn)
O(n2)
O(1)
不稳定
堆排序O(nlogn)
O(nlogn)
O(nlogn)
O(1)
不稳定
归并排序O(nlogn)
O(nlogn)
O(nlogn)
O(n)
稳定
    下面附上一张整本书的大图:



总结

    没有考试的压力下去看书,有种别样的味道,去总结也一样。突然发现好多东西一下一下都串起来了,而不是考试前那种想法,看什么都是考点,看什么都得掌握,觉得整本书都只是考试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 总结