“书到用时方恨少”这句话是真的...
尤其是计算机专业....
数据结构、算法基础、离散数学、编译原理、计算机组成原理……
这些课上没认真听过的东西都开始在我工作后伸手向我讨债了
慢慢还债吧...
数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排。数据结构包括数组、链表、栈、二叉树、哈希表等等。
算法则是对这些机构中的数据进行各种处理,例如简单的排序以及增、删、改、查等操作。
数据结构的特性:
数组:插入快,如果知道下标,可以快速存取;查找慢,删除慢,大小固定
有序数组:比无序数组的查找快;删除和插入慢,大小固定
栈:提供后进先出方式的存取;存取其他项很慢
队列:提供先进先出方式的存取;存取其他项很慢
链表:插入快,删除快;查找慢
二叉树:插入、查找、删除都快(若树保持平衡);删除算法复杂
红黑树:插入、查找、删除都快,树总是平衡的;算法复杂
2-3-4树:插入、查找、删除都快,树总是平衡的,类似的树对于硬盘存储有用;算法复杂
哈希表:如果关键字已知则存取极快,插入快;删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分
堆:插入、删除快,对最大数据项的存取很快;对其他数据项的存取慢
图:对现实世界建模;有些算法慢且复杂
算法概述
对于大多数数据结构来说,所要了解的算法无外乎
1.插入 2.查询 3.删除 4.排序
还需要知道如何迭代的访问某一数据结构的各数据项,即遍历
递归的概念也是十分重要的