算法-与你相爱相杀
与你白头偕老
笑小枫
一个爱钓鱼的程序员,专注于Java领域开发,开源项目《MapleBoot》,CSDN Java领域优质创作者,CSDN专家,阿里云博客专家,希望和志同道合的小伙伴一起学习进步。
展开
-
一天一个算法——>二叉搜索树的插入、查询、删除
二叉搜索树的插入、查询、删除。源码已上传github:https://github.com/hack-feng/algorithm代码均为自己的思路,手动敲写,如有bug,或者思路错误,欢迎指正,多多交流。package tree;/** * 二叉搜索树(BST) * 动态模拟实现:https://www.cs.usfca.edu/~galles/visualization/BST....原创 2019-08-27 16:29:18 · 1515 阅读 · 0 评论 -
一天一个算法——>平衡二叉树的插入
package tree;/** * 平衡二叉树(AVL树) * 这里只模拟int类型实现,如果需要其他类型,请将int类型修改为泛型,并实现extends Comparable<T>接口,方便比较 * 动态模拟实现:https://www.cs.usfca.edu/~galles/visualization/AVLtree.html * GitHub地址:https://...原创 2019-08-29 09:26:11 · 1673 阅读 · 0 评论 -
一天一个算法——>红黑树理论
介绍红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。 阅读以下需要了解普通二叉树的插入以及删除操作。 红黑树是在普通二叉树上,对没个节点添加一个颜...转载 2019-08-29 13:18:36 · 1458 阅读 · 0 评论 -
一天一个算法——>红黑树JAVA实现
package tree;/** * 红黑树(R-B Tree) * 递归方式空间复杂度为O(log n),且受栈内存限制,故能使用循环的尽量使用循环,本例子使用while循环 * 这里只模拟int类型实现,如果需要其他类型,请将int类型修改为泛型,并实现extends Comparable<T>接口,方便比较compareTo * 动态模拟实现:https://www....原创 2019-08-30 14:58:17 · 1572 阅读 · 0 评论 -
三种简单排序(冒泡、插入、选择)的比较和图解
冒泡排序这种排序方式是最容易理解的,主体思想就是: 指针重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。接下来我们来看看冒泡排序的图解,这里一个推荐网站:https://visualgo.net/ ,里面有很...转载 2019-09-02 14:19:21 · 1948 阅读 · 0 评论