数据结构与算法
文章平均质量分 75
三花学编程
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么很多编程语言中数组都从0开始编号?
在C语言中,数组名本质上是一个指向数组首元素的指针,通过指针偏移来访问数组元素。例如,在动态内存分配时,分配的内存块的起始地址可以直接作为数组的基地址,而不需要进行额外的偏移调整。在计算机科学中,很多数据结构和算法的描述和实现都基于从0开始的索引。例如,在链表、树等数据结构的遍历和操作中,从0开始的索引可以更好地与数组的索引方式统一起来。计算机的内存是通过地址来访问的,地址是从0开始的。而如果从1开始编号,数组的长度等于最大索引值,这在某些情况下可能会让人感到不自然。在编程中,循环是常见的操作。原创 2025-02-06 19:15:00 · 680 阅读 · 0 评论 -
二分查找--快速地将搜索空间减半
如果目标值大于中间元素,则在数组的右半部分继续查找。二分查找之所以在这些场景中有效,是因为它的时间复杂度为O(log n),这使得它比线性搜索(O(n))在大规模数据集上更加高效。然而,需要注意的是,二分查找要求数据是有序的,因此在实际应用中,可能需要先对数据进行排序。在实际的工程实践中,二分查找是一种非常高效的算法,它被广泛应用于多种场景中,尤其是在需要快速查找和排序的情况下。这种非递归的方法在某些情况下可能更受青睐,因为它避免了递归可能带来的栈溢出问题,尤其是在处理大规模数据时。如果没有找到,则返回。原创 2024-11-14 18:30:00 · 582 阅读 · 0 评论 -
每日一题:94. 二叉树的中序遍历(3种解法)
二叉树的中序遍历是一种常见的树遍历算法,它的遍历顺序是先遍历左子树,然后访问根节点,最后遍历右子树。在遍历过程中,我们将节点的值按照这个顺序添加到一个列表中。对于这个问题,我们可以使用递归或迭代的方法来实现中序遍历。原创 2024-09-02 08:15:00 · 548 阅读 · 0 评论
分享