java面试算法
文章平均质量分 58
HD243608836
这个作者很懒,什么都没留下…
展开
-
MySQL InnoDB引擎——三层B+树可以存储多少数据量
3层B+树大概可以存2000w条数据备注:在《阿里开发手册》中建议,单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,就不必要在创建表时就分库分表。原创 2023-02-23 16:49:37 · 8488 阅读 · 5 评论 -
算法的时间复杂度分析之O(logn)、O(nlogn)
复杂度分析之O(logn)、O(nlogn)对数阶时间复杂度非常常见,同时也是最难分析的一种时间复杂度。我通过一个例子来说明一下。根据我们前面讲的复杂度分析方法,第三行代码是循环执行次数最多的。所以,我们只要能计算出这行代码被执行了多少次,就能知道整段代码的时间复杂度。从代码中可以看出,变量 i 的值从 1 开始取,每循环一次就乘以 2。当大于 n 时,循环结束。还记得我们高中学过的等比数列吗?实际上,变量 i 的取值就是一个等比数列。如果我把它一个一个列出来,就应该是这个样子的:所以,我们只要知道转载 2022-07-09 10:45:43 · 894 阅读 · 0 评论 -
手写一致性hash算法中的hash值为负数的问题解决
大家都知道,int型的值取值范围为Integer.MIN_VALUE(-2147483648)~Integer.MAX_VALUE(2147483647)hash结果取到负数时怎么修改呢?可以想到取绝对值,但是若恰好是Integer.MIN_VALUE取绝对值,就会导致时int正数发生了溢出!!Math.abs(Integer.MIN_VALUE) = Integer.MAX_VALUE+1(溢出)看来这样行不通,如果对hash做数据偏移,统一加2147483647呢?No no,转载 2022-02-28 21:06:26 · 2805 阅读 · 0 评论 -
java快速排序的两种写法
快排写法写法一:package quickSort; public class QuickSort { private static int count; /** * 测试 * @param args */ public static void main(String[] args) { int[] num = {3,45,78,64,52,11,64,55,9...原创 2019-03-29 14:25:58 · 1017 阅读 · 0 评论 -
Java数据结构与算法---斐波那契数列Fibonacci
Java数据结构与算法—斐波那契数列Fibonacci原理都很简单,直接上代码:package cn.m_fibonacci;public class Fibonacci { public static int fibo(int n){ if(n==1||n==2){ return 1; }else{ ...转载 2019-12-11 11:42:29 · 451 阅读 · 0 评论 -
KMP算法详解(附java字符串匹配代码)
kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法。不过由于其难以理解,所以在很长的一段时间内一直没有搞懂。虽然网上有很多资料,但是鲜见好的博客能简单明了地将其讲清楚。在此,综合网上比较好的几个博客(参见最后),尽自己的努力争取将kmp算法思想和实现讲清楚。kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历...转载 2019-10-30 00:45:05 · 470 阅读 · 0 评论 -
数组 线性表 顺序表 的区别
①数组: 就是相同数据类型的元素按一定顺序排列的集合。一句话: 就是物理上存储在一组联系的地址上。也称为数据结构中的物理结构。②线性表: 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。一句话: 线性表是数据结构中的逻辑结构。可以存储在数组上,也可以存储在链表上。③顺序表:...转载 2019-03-21 09:58:33 · 2302 阅读 · 0 评论 -
二分法查找(折半查找)的两种写法
1.循环写法while public static int rank(int key,int nums[]) { //查找范围的上下界 int low=0; int high=nums.length-1; //未查找到的返回值 int notFind=-1; while(low&l...转载 2019-03-28 16:59:23 · 1235 阅读 · 0 评论