数据结构与算法
文章平均质量分 78
数据结构与算法
春来我不先开口,哪个虫儿敢作声?
关于我的博客内容如下:
有些内容是个笔记,内容并不全面,主要是为了给自己看,如果有什么疑问,想要我博客内容中的资料,请咨询我qq邮箱:[email protected]
展开
-
链表的实现
在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续。双向环形链表带哨兵,这是哨兵即作为头,也作为尾。原创 2023-12-25 21:26:55 · 800 阅读 · 0 评论 -
动态数组的实现
1. 在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识。2. 因为数组内的元素是连续存储的,所以数组中元素的地址,可以通过其索引计算出来。3. 知道了数组的数据其实地址BaseAddress,就可以由公式BaseAddress+ i * size 计算出索引i元素的地址。* i 即索引,在java,C等语言都是从0开始。* size 是每个元素占用字节,例如int 占4,double 占8.原创 2023-12-23 09:33:21 · 377 阅读 · 0 评论 -
查找算法——二分查找(数组)
这段代码实现了二分查找算法,时间复杂度为 O(log n),其中 n 是数组的长度。值得注意的是,这里的实现返回的是目标值在数组中的索引,如果目标值可能重复出现,这个函数只返回其中一个索引。(4) 如果arr[中间值] > 目标值 ,那么在左边可能有答案,此时,最右边的值 = 中间值 - 1;(5)如果arr[中间值] < 目标值 ,那么在右边可能有答案,此时,最左边的值 = 中间值 + 1;二分查找算法的函数f(n) = (floor(log2(n)) + 1) * 5 + 4。原创 2023-12-20 14:59:52 · 864 阅读 · 0 评论