数据结构
文章平均质量分 92
数据结构学习
应家三千金
这个作者很懒,什么都没留下…
展开
-
查找算法之二分查找(插值查找)
对半查找和斐波那契查找对于元素关键字的整体分布没有要求,可以均匀分布,也可以不均匀分布。对于关键字分布不均匀且没有规律的情况,确实很难找到更好的方法提高算法的查找效率;但是如果查找序列的关键字分布均与,那么是可以利用这种均匀性来提高算法效率的,例如使用插值查找。 在关键字值分布均匀的情况下,使用插值查找可以提高效率,那插值查找的原理是怎样的?下面举一个例子:关键字2468...原创 2020-04-02 23:55:06 · 326 阅读 · 0 评论 -
查找算法之二分查找(斐波那契查找)
斐波那契数列 在数学中,斐波那契数列的定义是:fn={n(n=0,1)fn−1+fn−2 (n⩾2 )f_n=\left\{\begin{array}{lc}n&(n=0,1)\\f_{n-1}+f_{n-2}\;\;&(n\geqslant2\;\;\;)\end{array}\right.fn={nfn−1+fn−2(n=0,1)(n⩾2) ...原创 2020-03-31 20:29:05 · 2032 阅读 · 2 评论 -
查找算法之二分查找(对半查找)
当有序表采用顺序存储时,可以采用二分查找的方式查找指定关键字的元素。 二分查找的基本思想是选择表中某一位置i的元素A(i),设该元素的关键字为K(i),将K(i)与待查找关键字key比较。关键字k1k_1k1k2k_2k2K(3)K(4)K(5)……K(i-1)K(i)K(i+1)……K(n-4)K(n-3)K(n-2)K(n-1)K(n)...原创 2020-03-30 20:24:23 · 7465 阅读 · 0 评论 -
查找算法之顺序查找
对顺序存储的数据进行查找,最简单的算法就是从头开始,逐个检查。若能够在表中找到与给定关键字匹配的元素,则查找成功,否则查找失败。 这个算法可以非常简单的得以实现:typedef struct{ int key; int value;}s_eletype;typedef struct{ int size; s_ele...原创 2020-03-28 22:18:54 · 437 阅读 · 0 评论 -
双向循环链表
文章目录双向循环链表双向循环链表节点结构双向循环链表 在单向循环链表中,如果要在末尾插入一个节点,必须从head一个节点一个节点往后查询,尽管新建节点是插入在末尾节点和起始节点之间。在节点数较多的情况下,这一过程是费时的。此外,在实际应用中,有时需要逆向访问表中元素,这对单向链表或单向循环链表结构来说显然是困难的。为解决这一问题,可将链表设计成双向链表或双向循环链表。 以双向循环链表为例...原创 2020-01-21 10:15:59 · 384 阅读 · 0 评论 -
单向循环链表
文章目录 单向循环链表是将单链表尾节点的指针域置为起始节点的地址,而不再是NULL,这样从表中任一节点出发,均可访问到链表中的所有节点。 显然单向循环链表的节点类型与普通单向链表完全相同。...原创 2020-01-17 12:58:07 · 1108 阅读 · 0 评论 -
单向链表
文章目录单向链表基本概念单向链表的节点结构单向链表的操作构造单向链表节点单向链表的插入单向链表末尾插入单向链表有序插入单向链表基本概念 在基于指针的链式结构中,单向链表是最基本的。 在单向链表中,每个节点都有两个域,一个是用于存放数据元素的域Element,一个用于指向后继节点的指针域Link。 单向链表的第一个节点称为起始节点,指向起始节点的指针称为头指针,头指针为NULL的单...原创 2020-01-13 12:29:16 · 480 阅读 · 0 评论