![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法
经典算法代码
嗷嗷嗷嗷_
在读研究生
JAVA 后端
GIS
展开
-
常见排序算法
public void quickSort(int[] arrs){ quickSortCore(arrs, 0, arrs.length - 1); } public void quickSortCore(int[] arrs, int low, int high){ if (low >= high) return; int mark = arrs[low]; int i = low, j = high; while (i < j) { while (arrs[j] >原创 2021-01-07 11:10:28 · 191 阅读 · 1 评论 -
大顶堆/小顶堆
小顶堆 小顶堆是堆顶元素最小(控制堆中元素个数,比堆顶元素大的元素才能入堆,可以用来确定第k大的数) class MinHeap{ private int capacity; private int count; private int[] elements; public MinHeap(int capacity) { this.capacity = capacity; elements = new int[capacity]; }原创 2020-11-19 19:32:40 · 651 阅读 · 0 评论 -
二叉树的前、中、后序遍历(迭代法)
前序遍历 中、左、右 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList(); if(root == null) return res; Stack<TreeNode> stack = new Stack(); stack.push(root); while (!stack.isEmpty()) {原创 2020-09-29 11:26:42 · 261 阅读 · 0 评论 -
Morris遍历(二叉树)
中序遍历 对于每一个节点来说: 如果该节点没有左子树(如节点1,节点4),则直接打印该节点,然后转到右子节点。 如果有左子树(如节点3,节点5),则我们首先要找到该节点的前驱节点,(1是3的前驱,4是5的前驱),其实就是找左子树的最右节点,构建一个前驱节点到当前节点的连接,即将前驱节点的右子节点指向当前节点。 当我们第一次进入节点3、5时,我们会构建前驱节点到当前节点的连接;但是当我们从1、4节点利用我们第一次已经构建好的连接再次进入3、5时,我们可以通过是否已经构建过连接来判断这是第二次进入,如果是第原创 2020-09-24 14:45:40 · 253 阅读 · 0 评论