数据结构实验
Posted ageng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构实验相关的知识,希望对你有一定的参考价值。
查找
· 今天老师带着我们学习了"查找"这一章,查找分为基于线性表的查找法和基于树的查找法,但还只是讲了基于线性表的查找法,那么基于线性表的查找法还分为顺序查找法、折半查找法、分块查找法。
· 首先是顺序查找法,它的特点是用所给关键字与线性表中各元素的关键字逐个比较,直到成功或者失败,存储结构通常为顺序结构,也可以为链式结构。
· 顺序查找法的定义是:#define LIST_SIZE 20 typedf struct{KeyType key;OtherType other_data;}RecordType; typedef struct{RecordType r[LIST_SIZE+1]; int lenth;}RecordList;
· 这也是非常常规的顺序查找法的定义,但是今天所讲的重点是和"监视哨"有关,有了监视哨就可以大大提升查找的效率,还可以起到防止越界的作用。
· 折半查找法的核心思想还是非常好理解的,定义好low=1和high=l.lenth之后,mid=low+high / 2 ,首先判断mid是不是就是要找的那个数据,若相等,则直接返回值,若不是,则判断所求数据是比mid大还是比mid小,若比mid小,则high=mid-1,若比mid大,则low=mid+1,直接顺序查找法的O(n)提升为折半查找法的O(logn),若n足够大,性能也能得到质的飞越。
· 分块查找法的性能也是挺不错的,夹在顺序查找法与折半查找法之间,时间复杂度是O(nlogn),这里就不多做介绍。
谢谢浏览。
以上是关于数据结构实验的主要内容,如果未能解决你的问题,请参考以下文章