
算法
Mr__fang
无
展开
-
红黑树(RBTree)
RBTree基于BST存在的问题,一种新的树——平衡二叉查找树(Balanced BST)产生了。平衡树在插入和删除的时候,会通过旋转操作将高度保持在logN。其中两款具有代表性的平衡树分别为AVL树和红黑树。AVL树由于实现比较复杂,而且插入和删除性能差,在实际环境下的应用不如红黑树。红黑树(Red-Black Tree,以下简称RBTree)的实际应用非常广泛,比如Linux内核中的完...转载 2019-12-19 15:01:07 · 679 阅读 · 0 评论 -
平衡二叉树(AVL)
著作权归https://www.pdai.tech所有。 链接:https://www.pdai.tech/md/algorithm/alg-basic-tree-balance.html什么是AVL树AVL树是高度平衡的而二叉树。它的特点是: AVL树中任何节点的两个子树的高度最大差别为1。上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而...转载 2019-12-19 14:45:04 · 541 阅读 · 0 评论 -
二叉搜索树(BST)
著作权归https://www.pdai.tech所有。链接:https://www.pdai.tech/md/algorithm/alg-basic-tree-search.htmlBST的定义在二叉查找树中:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意节点的左、右子树也分别为...转载 2019-12-18 17:44:12 · 449 阅读 · 0 评论 -
二叉树(B Tree)
名词解释二叉树的名词解释:根:树顶端的节点称为根。一棵树只有一个根,如果要把一个节点和边的集合称为树,那么从根到其他任何一个节点都必须有且只有一条路径。A是根节点。 父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;B是D的父节点。 子节点:一个节点含有的子树的根节点称为该节点的子节点;D是B的子节点。 兄弟节点:具有相同父节点的节点互称为兄弟节点;比如上图的D...转载 2019-12-12 19:19:07 · 671 阅读 · 0 评论 -
根据经纬度计算两点球面距离
原文:http://www.oschina.net/question/565065_66989#include #include using namespace std; double EARTH_RADIUS = 6378.137;//地球半径 double PI=3.1415926535; double rad(double d){转载 2015-04-29 18:17:59 · 3634 阅读 · 0 评论 -
GeoHash核心原理解析
原文:http://www.cnblogs.com/LBSer/p/3310455.html引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦转载 2015-04-02 11:14:58 · 1301 阅读 · 0 评论 -
数据结构--希尔排序
希尔排序java实现:public class ShellSortApp { public static void main(String[] args) { int maxSize = 10; ArraySh arr; arr = new ArraySh(maxSize); for (int j = 0; j < maxSize; j++) { long n = (原创 2014-07-09 16:20:01 · 818 阅读 · 0 评论 -
代码面试最常用的10大算法
原文地址:http://bbs.youkuaiyun.com/topics/390768965转载 2014-04-28 13:51:52 · 3976 阅读 · 0 评论 -
数据结构--排序
忘性太大,以此文章记录看过的代码。数据结构--排序--冒泡排序//冒泡排序public class BubbleSort { public static void main(String[] args) { int[] arr = BubbleSort.sort1(new int[] { 50, 20, 6, 90, 1, 80, 75, 65, 74, 25 });原创 2014-01-13 22:11:55 · 754 阅读 · 0 评论 -
10种排序算法总结
排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程工作 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位置 三转载 2013-04-03 09:39:09 · 776 阅读 · 0 评论 -
元芳,你怎么能随即生成m个数,让其和等于n?
今天看到了一个比较有意思的算法题,其实更有意思的是其解法,让人顿时有一种耳目一新的感觉,爱不释手,拿来分享一下。题目:假设生成26个非负随即数,要求其和是301,求程序生成此列数字哈哈,元芳,你如何看?解法一: 关于此种算法原理,我们可以假想是一根长301单位的绳子,然后随即在其上面截25个点,于是得到26根子绳,这26根子绳之和恰好就是绳子总长301。转载 2012-10-31 17:33:16 · 2196 阅读 · 0 评论