Skip to content

Commit 0c45e5b

Browse files
committed
修改README图片
1 parent 2f4dc6b commit 0c45e5b

3 files changed

Lines changed: 16 additions & 1 deletion

File tree

images/JavaTutorial目录.jpg

172 KB
Loading

src/main/java/cn/byhieg/algorithmtutorial/BinarySearchTree.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@
1111
* 该类是二叉搜索树
1212
* 该树在实现的时候,不考虑数组中有重复的数字。
1313
* 节点的左子节点的值都小于这个节点的值,节点的右子节点的值都大于等于这个节点的值
14+
* 该树并不是平衡二叉树,也就是说左右子树的树高可以存在很大的差距,这就导致了在极端情况下,存在只有左边的树,这样的查找时间复杂度就是o(N)
15+
* 平均情况下 时间复杂度是o(lgN)
16+
*
17+
* 可以考虑是用平衡二叉树,保持了树的左右高度 不会超过1,但是带来的插入和删除的额外开销,因为每次插入删除,都需要调整平衡
18+
* 但他的查找的时间复杂度是o(lgN)
19+
*
20+
* 二叉搜索树(BST)相比二分查找的优势,在于他不需要基于有序的数组,并且插入和删除的操作显然比二分查找的数组有快的多,
21+
* 但是时间复杂度没有二分查找稳定
22+
* 相比二叉平衡搜索树(AVL)而言,虽然多了插入和删除的优势,但是没有AVL稳定
1423
*/
1524
public class BinarySearchTree {
1625

@@ -248,6 +257,12 @@ public Node getMaxNode() {
248257
}
249258

250259

260+
/**
261+
* 通过先序遍历和中序遍历恢复一棵树
262+
* @param preOrders
263+
* @param inOrders
264+
* @param isLeft
265+
*/
251266
public void getTree(int[] preOrders, int[] inOrders,boolean isLeft) {
252267
int root = preOrders[0];
253268
if (isLeft) {

src/main/java/cn/byhieg/algorithmtutorial/Sort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private void swim(int nums[], int i) {
241241
* @param nums nums[] 数组
242242
* @param i i节点
243243
*/
244-
public void sink(int nums[], int i,int n) {
244+
public void sink(int [] nums, int i,int n) {
245245
int son = 2 * i + 1;
246246
while (son <= n - 1) {
247247
if (son < n - 1 && nums[son] > nums[son + 1]) son++;

0 commit comments

Comments
 (0)