算法
文章平均质量分 75
健康平安的活着
再给我一次重生的机会,我将加倍珍惜,将java事业进行到底。
展开
-
面试算法变成题-必须掌握
【代码】面试算法变成题-必须掌握。原创 2023-08-21 09:49:06 · 132 阅读 · 0 评论 -
一次聊个痛快,B-,B+树的特点和使用场景
一 B树1.1 B树1.B树的原英文名称为B-TREE,而国内很多人喜欢B-Tree译作B-树,其实,这是个很不好的直译,很容易让人产生误解。如人们可能会以为B树是一种树,而B-树又是一种树,而事实上,B-Tree就是指的是B树,平衡多路查找树(B-Tree),目前B的意思理解为平衡。B 树就是常说的“B 减树(B- 树)”,又名平衡多路(即不止两个子树)查找树。2.二叉树阶M:树中所有孩子结点个数的最大值称为该树的阶!树的阶数表示一个节点最多能有多少个子节点,也就是每个节点上最多的键值个数..原创 2022-03-26 17:44:53 · 3105 阅读 · 1 评论 -
一次聊个透彻:满二叉树、完全二叉树、二叉搜索树,二叉平衡树
3.1 完全二叉树完全二叉树是一种特殊的二叉树,满足以下要求:1.所有叶子节点都出现在 k 或者 k-1 层,而且从 1 到 k-1 层必须达到最大节点数;2.第 k 层可以不是满的,但是第 k 层的所有节点必须集中在最左边。需要注意的是不要把完全二叉树和“满二叉树”搞混了,完全二叉树不要求所有树都有左右子树,但它要求:2.1任何一个节点不能只有右子树没有左子树叶子节点出现在...原创 2019-02-14 18:15:37 · 6429 阅读 · 0 评论 -
递归实现数字倒序显示
要求:123456789,倒序输出:987654321public class DiGuiDigital { public static void main(String args[]){ int n=123456789;//倒序输出:987654321 StringBuffer sb=new StringBuffer(); show( n, sb )...原创 2019-02-16 10:59:56 · 2543 阅读 · 0 评论 -
有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…
题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC… 方法一:使用lock和condition来实现a执行完通知b执行,b执行完通知c执行,c执行完通知a执行的顺序,使用Executors的fixedthreadpool,将三个线程放到线程池里面,使用线程池控制程序的结束,调用shutdown()方法。package com.ljf.thread....原创 2019-01-27 10:49:27 · 5593 阅读 · 1 评论 -
全文检索:倒排索引的理解
一.定义:是基于单词-文档矩阵的一种存储形式,它描述了一个term词项集合和文档集合之间具有映射关系的数据结构。 1.term词项集合列表:定义要搜索的一些词。 2.词项文档映射集合列表:定义单词id,单词,单词在文档中的位置,单词出现的频率,文档出现的频率等信息。 文档列表: 词项集合 :...原创 2016-06-27 14:26:23 · 2922 阅读 · 0 评论 -
堆排序
一. 堆堆排序是完全二叉树的应用,是充分利用完全二叉树的一种选择特性。最小堆,根节点最小;最大堆,根节点最大。利用堆求最大或最小的前k个数:用堆在海量数据中找出最大或最小的k个数,效率非常高。a.将无序列的数据构建成一个无序的堆,根据升序或降序需求初始化一个大顶堆或者小顶堆b.将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;c.重新调整结构,使其满足堆定义(最大堆,最小堆...原创 2019-01-10 11:54:38 · 174 阅读 · 0 评论 -
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。
一.知识储备有符号无符号int取值范围:有符号int 取值范围[- 2^31 , 2^31-1];无符号int取值范围[ 0,2^32-1]。关于中位数:数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值(那么10G个数的中位数,就第5G大...原创 2019-01-24 18:51:51 · 1130 阅读 · 0 评论 -
题目:1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次
数组a[1,2,3.....1000,x],x为重复的元素;注意可能不在最后一个位置,在1-到1001任意一个位置。思想:将数组a中的1001个元素累加的和减去1,2,3...1000累加的和,之差即就是重复的元素不bb了,上代码:public class AAA { public static void main(String args[]){ int re...原创 2019-01-24 18:29:01 · 1226 阅读 · 0 评论 -
快速排序-fastSort
思想:1.选取一个元素(默认从最左边的第一个元素选取)记作temp,保证从数组最右端开始,元素都比temp大,数组左边的元素都比temp小的原则,左右交替向中央移动,当发生碰撞就是temp存储的位置,然后折半,左,右两部分按照之前的逻辑继续执行,直到两部分都收敛。2.和数组的最右边的元素进行比较: 2.1如果元素大于temp,j--;右边向左边移动一个位置;j--2.2 如果元素小...原创 2019-01-12 12:07:55 · 619 阅读 · 0 评论 -
java 算法:查找,排序,统计等
总结的算法已经存入百度网盘原创 2019-01-12 10:44:53 · 162 阅读 · 0 评论 -
二分查找
使用二分查找:确保待查找的数组或者集合的数据是有序排列(升序或者降序)话不多说,上代码:public class TwoFind { public static void main(String args[]){ int searchData=89; //int dbArray[]={12,56,67,89,45,23,67,89,10}; int...原创 2018-11-01 13:54:54 · 135 阅读 · 0 评论