数据结构和算法概述

来源:互联网 发布:杭州网络维修招聘 编辑:程序博客网 时间:2024/05/17 22:20

一.数据结构和算法概述

数据结构是对在计算机内存(有时在磁盘中)中的数据的一种安排。数据结构包括数组,链表,栈,二叉树,哈希表等。算法是对这些结构中的数据进行各种处理。

对于大多数数据结构来说,都需要知道如下操作:

1.插入一条新的数据项

2. 寻找某一特定数据项

3.删除某一特定数据项

4.迭代访问某一数据结构中的各数据项,以便进行显示和其他操作

5.排序


二.数据结构特性

数据结构优点缺点数组插入快,如果知道下标可以快速存取查找慢,删除慢,大小固定有序数组比无序数组查找快删除和插入慢,大小固定栈提供后进先出方式的存取存取其他项很慢队列提供先见先出方式的存取存取其他项很慢链表插入快,删除快查找慢二叉树查找,插入,删除都快(如果树保持平衡)删除算法复杂红-黑树查找,插入,删除都快。树总是平衡的算法复杂2-3-4树查找,插入,删除都快。树总是平衡的。类似的算法对磁盘存储有用算法复杂哈希表如果关键字已知,则存取极快。插入快删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分堆插入,删除快。对最大数据项的存取很快对其他数据项存取慢图对现实世界建模有些算法慢且复杂


三.大O表示法(“order of”大约是)

我们需要一种快捷的方法来评价计算机算法的效率。在计算机科学中,这种粗略的度量方法被称作“大O”表示法。

我们需要的是一个可以描述算法的速度是如何与数据项的个数相联系的比较。

用大O表示法表示运行时间

算法大O表示法表示运行的时间线性查找O(N)二分查找O(logN)无序数组插入O(1)有序数组插入O(N)无序数组删除O(N)有序数组删除O(N)

大O表示法的实质并不是对运行时间给出实际值,而是表达了运行时间是如何受数据项个数影响的。



0 0
原创粉丝点击