- 博客(5)
- 资源 (1)
- 收藏
- 关注
转载 《数据结构与算法》之红黑树
二叉查找树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉查找树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为 O(logN) ,底数为 2。但是我们说这个时间复杂度是在平衡的二叉查找树上体现的,也就是如果插入的数据是随机的,则效率很高,但是如果插入的数据是有序的,这种情况下查找的时间复杂度为 O(N),而不是 O(logN) 。当...
2018-12-10 20:52:51 233
原创 《数据结构与算法》之二叉树
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉查找树要求:若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 它的左、右子树也分别为二叉排序树。二叉查找树的实现:1...
2018-12-09 17:03:46 143
转载 《数据结构与算法》之递归(3)
4、汉诺塔问题汉诺塔问题是由很多放置在三个塔座上的盘子组成的一个古老的难题。如下图所示,所有盘子的直径是不同的,并且盘子中央都有一个洞使得它们刚好可以放在塔座上。所有的盘子刚开始都放置在A 塔座上。这个难题的目标是将所有的盘子都从塔座A移动到塔座C上,每次只可以移动一个盘子,并且任何一个盘子都不可以放置在比自己小的盘子之上。递归算法为: ①、从初始塔座A上移动包含n-1个盘子到中介塔...
2018-12-09 10:43:49 115
转载 《数据结构与算法》之递归(2)
2、递归的二分查找注意!!!二分查找的数组一定是有序的。在有序数组array[]中,不断将数组的中间值(mid)和被查找的值比较,如果被查找的值等于array[mid],就返回下标mid; 否则,就将查找范围缩小一半。如果被查找的值小于array[mid], 就继续在左半边查找;如果被查找的值大于array[mid], 就继续在右半边查找。 直到查找到该值或者查找范围为空时, 查找结束。...
2018-12-06 21:08:22 132
转载 《数据结构与算法》之递归(1)
递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归三要素:(1)边界条件、(2)递归前进段、(3)递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归...
2018-12-05 20:42:30 403
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人