数据结构
Spirits、
做一条有梦想的咸鱼
展开
-
深入理解递归思想
什么是递归 本质上,将原来的问题转换为更小的同一问题。问题规模可以不断缩小,直到达到一个不能再缩小的基本问题,解决这个基本问题,就解决了整个问题。 例如,使用递归思想对自然数1、2、3…n-1 、n求和: sum(n) = n +sum(n-1); //sum(n-1)就是被转换后规模更小的同一问题。 sum(n-1)=n-1 +sum(n-2) … sum(2)= 2 +sum(1) //直到...原创 2018-10-13 17:55:25 · 1016 阅读 · 0 评论 -
数据结构---二分搜索树(java实现)
树 树的分类 1、 二分搜索树 2、 平衡二叉树: AVL;红黑树 3、 堆; 并查集 4、线段树;Trie(字典树、前缀树) 二叉树 二叉树具有天然的递归结构 每个节点的左子树也是二叉树 每个节点的右子树也是二叉树 二叉树不一定是“满”的 一个节点也是二叉树 NULL 空也是二叉树 二分搜索树 二分搜索树是二叉树 二分搜索树的每个节点的值大于其左子树的所有节点的值 二分搜索树的每个节点...原创 2018-10-21 23:41:59 · 365 阅读 · 0 评论 -
八大排序算法之快速排序
快速排序的基本思想: 快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下的元素以中轴元素作为比较的标准,将小于等于中轴元素的放到中轴元素的左边,将大于中轴元素的放到中轴元素的右边,然后以当前中轴元素的位置为界,将左半部分子数组和右半部分子数组看成两个新的数组,重复上述操作,直到子数组的元素个数小于等于1(因为一个元素的数组必定是有序的)。 代码示例...原创 2019-08-16 15:51:13 · 105 阅读 · 0 评论