1.数据结构定义
数据结构是什么?网络上的一些定义十分抽象,且各不相同,学完之后,反而对数据结构的概念更加模糊、更有敬畏之心。数据结构是指逻辑意义上的数据组织方式及其相应的处理方式。
2.数据结构分类
数据结构是算法的实现基石,它是一种体现基础逻辑思维的内功心法,也是计算机从业人员能力图谱中 的重要一环。若果不懂数据结构,很难写出优秀的代码。有缺陷的底层数据结构容易导致系统高风险、扩展性差,所以需要认真的对数据结构进行设计和审评。从直接前继和最直接后继个数维度来看,大体上可以将数据结构分为以下四种办法。
1.线性结构
2.树结构
3.图结构
4.哈希结构
1.线性结构
0至1直接前继和直接后继。当线性结构非空时,有唯一的首元素和未元素。当线性结构非空时,有唯一的首元素与未元素,除两者之外,所有的元素都有唯一的直接前继和直接的后继。线性结构包含顺序表,链表,栈,队列等,其中栈和队列是访问受限结构。栈是后进先出,即Last-in,First-Out 简称LIFO;队列是先进先出,即FIrst-In,FIrst-Out,简称FIFO
2.树结构
0至1个直接前继和0至n个后继(n大于等于2)。树是一种非常重要的有层次的的非线性数据结构,想自然的树一样。由于树结构比较稳定和均衡,在计算机中有广泛的应用。
3.图结构
0至n个直接前继和后继(n大雨等于2)。图结构包括简单图、多重图、有向图和无向图等。
4.哈希结构
0至n个直接前继和直接后继。哈希通过某种特定的哈希函数将索引与存储值关系关联起来,他是一种查找效率非常高的数据结构。
算法耗能排序 常数级O(1)、对数级O(logn)、线性级O(n)、线性对数级O(nlogn)、平方级O(n2)、立方级O(n3)、指数级O(2^n)等
在设计程序的时候应该考虑随着数据规模的增长,程序的性能不应该有很大的起伏。