数据结构
Mr.Jcak
这个作者很懒,什么都没留下…
展开
-
红黑树为什么可以确保没有一条路径会比其他路径长出两倍
红黑树的两个特性来保证:1、如果一个节点是红色的,则它的子节点必须是黑色的。也就是一条路径上没有两个连续的红色节点;2、对于任一节点而言,其到叶节点树尾端NULL指针的每一条路径都包含相同数目的黑节点。因为黑色节点数量相同,最多黑色之间有相同数量的红色节点.所以没有一条路径会比其他路径长出俩倍...原创 2021-03-18 10:16:26 · 433 阅读 · 0 评论 -
归并排序的时间复杂度为什么为nlogn
归并排序的递归过程如下,该递归树的高度为log2n(计算过程:假设待排序的数组元素个数为n,设高度为x,x意味着n个元素需要连续二分x次才剩下1个元素,即n/2^x=1,x=log2n),每一层的总比较次数为n,所以时间复杂度为nlogn。快速排序的分析过程类似。快速排序的平均时间复杂度同样为nlogn。假设在平均情况下每次选取的基准值均为该数组的中间值,因此每次都将数组分成两半,直到分割到只剩一个元素。假设n个元素平分了x次后只剩1个元素,则n/2^x=1,x=log2n。每次分割后的比较次数为n原创 2021-02-17 23:14:53 · 4069 阅读 · 0 评论 -
使用哈希表的好处
先来了解一下Hash的基本思路:设要存储对象的个数为num,那么我们就用len个内存单元来存储它们(len>=num);以每个对象ki的关键字为自变量,用一个函数h(ki)来映射出ki的内存地址,也就是ki的下标,将ki对象的元素内容全部存入这个地址中就行了。这个就是Hash的基本思路。Hash为什么这么想呢?换言之,为什么要用一个函数来映射出它们的地址单元呢?This is a good question.明白了这个问题,Hash不再是问题。下面我就通俗易懂地向你来解答一下这个问题。..转载 2020-07-19 19:31:53 · 1630 阅读 · 0 评论