算法
文章平均质量分 94
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
宇翔XGT
软件开发、后端开发、架构师
展开
-
二叉树的先序、中序、后序及层次遍历的非递归方式实现(Java)
public class PreInPosTraversal { public static void preOrderUnRecur(Node head) { System.out.print("pre-order: "); if (head != null) { Stack<Node> stack = new ...原创 2018-08-07 09:57:44 · 2346 阅读 · 0 评论 -
二叉树的先序、中序、后序遍历的递归方式实现(Java)
public class PreInPosTraversal { public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value...原创 2018-08-07 09:54:54 · 546 阅读 · 0 评论 -
常用的八大排序算法图文详解
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时...转载 2018-05-18 11:56:17 · 7656 阅读 · 2 评论 -
BFPRT算法详解
一:背景介绍在一大堆数中求其前k大或前k小的问题,简称TOP-K问题。而目前解决TOP-K问题最有效的算法即是BFPRT算法,其又称为中位数的中位数算法,该算法由Blum、Floyd、Pratt、Rivest、Tarjan提出,最坏时间复杂度为O(n)。在首次接触TOP-K问题时,我们的第一反应就是可以先对所有数据进行一次排序,然后取其前k即可,但是这么做有两个问题: (1):快速排序的平均复杂度...转载 2018-06-21 16:09:32 · 4187 阅读 · 2 评论 -
窗口及窗口内最大值或最小值的更新结构(单调双向队列)详解(java实现)
package advanced_class_02;import java.util.HashMap;import java.util.LinkedList;/* * 窗口及窗口内最大值或最小值的更新结构(单调双向队列) * * 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 * 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他...原创 2018-06-22 15:49:08 · 328 阅读 · 0 评论