
算法和数据结构
文章平均质量分 52
算法和数据结构--程序基本功
maxwell-ma
这个作者很懒,什么都没留下…
展开
-
Java比较器
1. 简介在Java中对于基本数据类型,诸如Integer、double等,java可以对它们进行比较,我们开发人员不需要做任何其他的工作,但对于复杂数据类型,比如类的比较,需要开发人员定义比较的逻辑,这种比较逻辑,Java中提供了两种实现,一种是内部比较器Comparable,另一种是外部比较器Comparator,这两个比较器都是Java接口。2. 源码介绍(Java8)内部比较器Comparable源代码在java.lang下,里面只有一个方法public int compareTo(T o);原创 2021-10-18 10:35:41 · 842 阅读 · 0 评论 -
排序算法总结
说到排序,一定离不开这张图简单排序O(n2)O(n^2)O(n2)冒泡排序选择一个最大的数(最小的数)放到最后面的位置,然后选择次大的数(次小的数)放到倒数第二个位置,依次类推,直到所有的数字为止。由冒泡排序衍生出了鸡尾酒排序,听起来很高大上,它是一种双端冒泡,先选一个最小的数,放到第一位,然后选一个最大的数放到最后一位,以此类推。冒泡排序代码: //降序排列 public static void bubbleSort(int[] arr) { if (arr == nu原创 2021-10-15 16:24:22 · 148 阅读 · 0 评论 -
布隆过滤器
布隆过滤器java中使用基础类型拼出比特操作的结构(位图)int[] arr=new int[10];//32bit*10 -> 320bits//arr[0] int 0~31//arr[1] int 32~63int i=178;//取出第178个bit的状态int numIndex=178/32;int bitIndex=178%32;//取178位状态int s=((arr[numIndex]>>bitIndex)&1);//把178位的状态改为1原创 2021-09-30 16:56:48 · 119 阅读 · 0 评论 -
大数乘法
算法描述:使用int[] input1和int[] input2存储被乘数和乘数,使用int[input1.length+input2.length] result存储计算结果,具体计算过程可以结合代码和示意图理解public class Multiply { public static void main(String[] args) { String input1="123456789"; String input2="123456789";原创 2021-09-29 16:35:25 · 95 阅读 · 0 评论 -
2021网易秋招机试算法真题
1题目描述:无聊的牛牛突发奇想,想将手中的一排格子红蓝两种颜色,对于每个格子牛牛都有自己的想法。例如,如下的格子。1号和2号格子涂蓝色,3号格子涂红色,4号格子涂蓝色,5号格子涂红色,6、7涂蓝色,8号涂红色。如果按照这个方法涂的华,他需要6步(1、2可以一起涂,6、7可以一起涂)。但是他也可以将1-7号涂上蓝色,再将3、5、8号分别涂成红色,则步数数量最少,为4次。解题思路三种方案:1、一个颜色一个颜色的涂;2、全涂成红色,再分块涂蓝色;3、全涂成蓝色,再分块涂红色;统计有几块颜色;#原创 2021-09-25 17:12:21 · 552 阅读 · 0 评论 -
跳跃表原理
概念跳表(SkipList,全称跳跃表)是用于有序元素序列快速搜索查找的一个数据结构,跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。它在性能上和红黑树、AVL树不相上下,但是跳表的原理非常简单,实现也比红黑树简单很多。时间复杂度O(log(n))假设最上层索引有两个节点,一级索引n/2^1,二级索引n/2^2… 则索引层数h=log2 (n/2),每一层最多原创 2021-09-24 10:02:15 · 107 阅读 · 0 评论 -
左老师算法直播
小红书https://github.com/algorithmzuo/publicclass2020/tree/master/src/class59原创 2021-09-06 15:19:11 · 269 阅读 · 0 评论 -
13个球,找特殊球
问题描述:13个球,有两种重量,12个球一个重量,单独的一个球另一重量,只用一个天平(没有砝码),最多称3次找到这颗特殊的球。解决算法描述:将13个球分为三组A、B和C组,每组分别4个,4个和5个,分别编号:A1、A2、A3和A4,B1、B2、B3和B4,C1、C2、C3、C4和C5。具体算法描述如下:图中绿底圆角矩形表示比较(动作),蓝底椭圆表示比较的结果(状态)...原创 2021-07-07 20:07:21 · 431 阅读 · 0 评论