![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
藏红
不要担心自己走错路误了终身,坚持并保持进步才是正道。
展开
-
堆外排序
http://taop.marchtea.com/06.04.htmlhttps://zh.wikipedia.org/wiki/%E5%A4%96%E6%8E%92%E5%BA%8F先做记录。转载 2016-12-28 12:01:45 · 436 阅读 · 0 评论 -
Java常用排序算法
本文由网络资料整理而来,如有问题,欢迎指正!分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。先来看看8种排序之间的关系:转载 2015-09-19 16:26:48 · 657 阅读 · 0 评论 -
平衡二叉树及调整
什么是平衡二叉树,如何调整不平衡? 看了很多人的博客,发现多多少少都有一些错误(被迷惑了很久),最多通过查看维基百科的定义才终于搞懂。写篇文章记录一下,防止自己忘记。1. 什么是平衡二叉树?平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过12. 平衡二叉树有什么作用?原创 2015-07-16 11:13:19 · 4266 阅读 · 1 评论 -
从头到尾彻底理解KMP(2014年8月22日版)
转自:http://blog.csdn.net/v_july_v/article/details/7041827从头到尾彻底理解KMP作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言 本KMP原文最初写于2年多前的2011年12月,因当转载 2015-08-24 18:47:44 · 403 阅读 · 0 评论 -
面试10大算法汇总
英文版以下从Java角度解释面试常见的算法和数据结构:字符串,链表,树,图,排序,递归 vs. 迭代,动态规划,位操作,概率问题,排列组合,以及一些需要寻找规律的题目。1. 字符串和数组字符串和数组是最常见的面试题目类型,应当分配最大的时间。关于字符串,首先需要注意的是和C++不同,Java字符串不是char数组。没有IDE代码自动补全功转载 2015-02-27 20:35:30 · 1913 阅读 · 0 评论 -
几个常用的操作系统进程调度算法
一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入转载 2015-04-16 20:27:46 · 724 阅读 · 0 评论 -
拓扑排序 dfs
拓扑排序简单来说就是把一个图的所有节点排序,使得每一条有向边(u,v)对应的u都排在v的前面。 拓扑排序最大的用途就是判断一个有向图是否有环,当然判断还有一种方法就是Floyd算法。如果用邻接表的话拓扑排序的时间复杂度是O(N*E),邻接矩阵是O(N^2),N表示顶点数,E表示边数,Floyd时间复杂度是O(N^3)。性质1、 拓扑排序在有向无环图中才能排出有效的序列,转载 2015-06-01 16:36:22 · 952 阅读 · 0 评论 -
生产者消费者问题
生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关转载 2015-04-03 19:15:25 · 1150 阅读 · 0 评论 -
银行家算法
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(2) 顾客可以分期贷款,但贷款的总数不能超过最大需求量;(3) 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有转载 2015-04-03 20:32:38 · 650 阅读 · 0 评论 -
打印二叉树两个叶子节点间的路径
转载请注明出处:http://blog.csdn.net/luonanqin 前两天在网上看到百度的一个校园招聘面试题:输出二叉树中两个叶子节点间的路径。感觉不是很难,所以花了点时间用Java实现了下。如果有更好的想法可以一起讨论。(另一个面试题是求二叉树中的最长路径,即相距最远的两个叶子节点,由于网上有实现所以我就不放出来了。)转载 2015-04-10 20:59:16 · 1603 阅读 · 0 评论 -
单调链凸包
1 Monotone Chain Convex Hull(单调链凸包)算法伪代码: 2 //输入:一个在平面上的点集P 3 //点集 P 按 先x后y 的递增排序 4 //m 表示共a[i=0...m]个点,ans为要求的点; 5 struct P 6 { 7 int x,y; 8 friend int operator (P a, P b) 9 {10转载 2015-06-02 11:12:56 · 1469 阅读 · 0 评论 -
二叉树的深度
转:http://blog.csdn.net/derrantcm/article/details/46771529题目一:输入一棵二叉树的根结点,求该树的深度。从根结点到叶子点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的结点定义private static class BinaryTreeNode { int val; Bi转载 2015-07-06 20:56:33 · 2457 阅读 · 0 评论 -
04-树8. Complete Binary Search Tree (30)
参考:http://blog.csdn.net/iaccepted/article/details/20726067题目来源:04-树8. Complete Binary Search Tree (30)时间限制100 ms内存限制65536 kB代码长度限制8000 B判题程序原创 2015-07-27 12:47:00 · 500 阅读 · 0 评论 -
一致性哈希算法的理解与实践
http://yikun.github.io/2016/06/09/%E4%B8%80%E8%87%B4%E6%80%A7%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95%E7%9A%84%E7%90%86%E8%A7%A3%E4%B8%8E%E5%AE%9E%E8%B7%B5/转载 2017-01-14 12:21:12 · 348 阅读 · 0 评论