![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
蛋焊工
搬砖小学生
展开
-
发号器:雪花算法(Snowflake)
雪花算法(Snowflake)是twitter公司内部分布式项目采用的ID生成算法,开源后广受国内大厂的好评,在该算法影响下各大公司相继开发出各具特色的分布式生成器。 第一个bit位(1bit):Java中long的最高位是符号位代表正负,正数是0,负数是1,一般生成ID都为正数,所以默认为0。 时间戳部分(41bit):毫秒级的时间,不建议存当前时间戳,而是用(当前时间戳 - 固定开始时间戳)的差值,可以使产生的ID从更小的值开始;41位的时间戳可以使用69年,(1L << 4..原创 2021-08-12 13:00:06 · 611 阅读 · 0 评论 -
算法(1)-冒泡排序
冒泡算法核心就是两层for循环;时间复杂度O(n^2) public static void bubbleSort(int[] a) { for (int i=0;i<a.length;i++){ for(int j=i;j<a.length;j++){ if(a[i]>a[j]){//从小到大...原创 2018-12-13 10:22:18 · 152 阅读 · 0 评论 -
算法(2)-快速排序
快速排序(Quick Sort)使用分治法策略。 它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序流程: 从数列中挑出一个基准值。 将所有比基准值小的摆放在基准前面,所有比基准值大的摆...原创 2019-01-21 18:58:51 · 144 阅读 · 0 评论 -
算法(3)-二分查找
总共有n个元素,每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。 由于n/2^k取整后>=1,即令n/2^k=1, 可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O()=O(logn) public static boolean binarySearch(int[] a,int k){ ...原创 2019-02-20 18:48:27 · 180 阅读 · 0 评论