
数据结构
文章平均质量分 89
echo 云清
一个喜欢尝试的菜鸟
展开
-
算法空间时间复杂度分析
算法的空间复杂度(Space Complexity)是对一个算法在运行过程中占用内存空间大小的量度,记做S(n)=O(f(n)空间复杂度依然使用大O来表示 , 利用程序的空间复杂度,可以对程序运行中需要多少内存有个预先估计 , 避免超出内存限制空间复杂度是看程序运行时占用内存的大小,而不是可执行文件的大小从用户使用体验上看,更看重的程序执行的速度(时间复杂度 ), 一些缓存产品 (redis, memcache)和算法(基数排序)本质就是用空间换时间。原创 2023-03-02 08:31:10 · 831 阅读 · 0 评论 -
八种排序的原理分析
2.将堆顶元素 8 与末尾元素 5 进行交换,得到第二大元素 8.3.继续进行调整交换,如此反复进行,最终使得整个序列有序。原创 2023-02-28 11:50:57 · 548 阅读 · 0 评论 -
数组中双指针的应用例题
仔细想一下,我们在进行arr1和arr2数组比较的时候,肯定有一种情况是:arr2中的当前元素比arr1中的当前元素小,每当遇上这种情况就计算出arr1数组中当前位置到最后位置的元素的个数类加上,得到的累加和就是最后逆序对的个数。如果arr1数组中的元素比arr2数组中的元素小,就把arr1中的当前元素放入到我们新生成的数组中去,arr1数组的指针往后移一下,反之亦然。输入一个整型数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,要求时间复杂度O(N)原创 2023-02-28 00:13:31 · 174 阅读 · 0 评论 -
数据结构三大查找算法及二分查找的应用
斐波那契查找原理与前两种相似,仅仅改变了中间结点(mid)的位置,mid 不再是通过中间或插值得到,而是位于黄金分割点附近 mid=low+F[k - 1]-1。只要顺序表的长度为 F[k]-1,则可以将该表分成长度为 F[k-1]-1 和 F[k-2]-1 以及 mid 三部分 , 类似的每一子段也可以用相同的方式分割。由斐波那契数列 F[k]=F[k-1]+F[k-2] 的性质,可以得到 ( F[k]-1 ) =(F[k-1]-1)+(F[k-2]-1)+1。插值查找算法,也要求数组是有序的。原创 2023-02-28 00:10:47 · 793 阅读 · 0 评论 -
数据结构树专题
能提高数据存储,读取的效率, 比如利用 二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也可以保证数据的插入,删除,修改的速度。二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续。节点 : 根节点 , 父节点 , 子节点 , 叶子节点 (没有子节点的节点) , 节点的权(节点值)树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树 , 二叉树的子节点分为左节点和右节点。子树:以某个子节点作为根的树。原创 2023-02-18 22:51:41 · 99 阅读 · 0 评论 -
哈希表(Hash table)
哈希表(Hash table)原创 2023-01-30 12:06:17 · 523 阅读 · 0 评论 -
数据结构之链表
链表的相关操作原创 2023-01-26 21:57:44 · 162 阅读 · 0 评论